Python中plt.plot图像保存有白边及颜色不正常

第一个问题,plt图像保存有白边

首先,plt图像保存有白边,设置savefig里的参数和plt.tight_layout都无法真正的去除,plt适合画图表,有坐标值的这种。
1.可以使用CV2来进行处理

im = cv2.imread('demo.jpg')
cv2.imshow('image',im)
cv2.imwrite('aa.jpg',img,[int(cv2.IMWRITE_JPEG_QUALITY),95])
cv2.waitKey(0)
cv2.destroyAllWindows()

2.通过设置plt.figure

import matplotlib.pyplot as plt
dpi=200
im=cv2.imread("~/face.jpg")
fig = plt.figure(frameon=False)
fig.set_size_inches(im.shape[1] / dpi, im.shape[0] / dpi)
ax = plt.Axes(fig, [0., 0., 1., 1.])
ax.axis('off')
fig.add_axes(ax)
ax.imshow(im)
fig.savefig("~/a.jpg", dpi=dpi)

第二个问题保存时呈现蓝色

混用CV和PIL图像读取,图像显示,发生保存颜色发生异常
这是由于plt和cv2图像的通道顺序是不一样的,所以交换第一通道和第三通道就可以了。

import numpy as np  
import cv2  
import matplotlib.pyplot as plt  
  
img = cv2.imread('demo.jpg')  
(r, g, b)=cv2.split(img)  
img=cv2.merge([b,g,r])  
  
plt.imshow(img)  
plt.show() 

import numpy as np  
import cv2  
import matplotlib.pyplot as plt  
  
img = cv2.imread('demo.jpg')  
im=im[:, :, ::-1]
  
plt.imshow(img)  
plt.show() 

你可能感兴趣的:(OpenCV,matplotlib)