第一个问题,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()