python保存图片时和原图大小一致 |
您所在的位置:网站首页 › picsart保存原图 › python保存图片时和原图大小一致 |
文章目录
1. matplotlib系列的2. opencv系列的
之前遇到过一次这个问题,当时解决了但是忘了记录,这里再记录一次好了。
1. matplotlib系列的
整体代码如下: import cv2 import matplotlib.pyplot as plt name="1-1.png" path="crop/"+name src = cv2.imread(path) img = cv2.cvtColor(src, cv2.COLOR_BGR2RGB) # Opencv和matplotlib读取图片的渠道不同,需要转换 # cv2.imshow("original image", src) # 获取图像的高度和宽度 plt.savefig('my_fig.png', dpi=my_dpi) plt.imshow(img) IMG = cv2.bitwise_not(img) # 进行反色操作 # cv2.imshow("bitwise image", img) mydpi=96 plt.figure(figsize=(Width/mydpi,Height/mydpi),dpi=mydpi) # figsize中的单位是inches,重点解释一下这个figsize参数,先写宽度,再高度 """ figsize : (float, float), optional, default: None width, height in inches. If not provided, defaults to:rc:`figure.figsize` = ``[6.4, 4.8]`` """ plt.imshow(IMG) plt.axis('off') # 去掉坐标轴 # 保存 plt.savefig("processcrop/"+name,dpi=mydpi)但是不知道为什么还是会有白边。。。 注意: 如果是在jupyter lab中,plt.axis('off')就不会有问题,但是在jupyter notebook中,就会报错。 jupyter lab中: opencv默认保存就是和原图一样的大小 name="1-1.png" path="crop/"+name src = cv2.imread(path) plt.imshow(src[:, :, ::-1]) plt.axis('off') img = cv2.bitwise_not(src) cv2.imwrite("processcrop/"+name,img)原图: 参考——stack overflow的回答:Specifying and saving a figure with exact size in pixels plt.figure(figsize=(800/my_dpi, 800/my_dpi), dpi=my_dpi) # 假设有一个800×800pix的图,要显示在本机电脑dpi为96的电脑上,则要保持原图大小显示就可以使用上述代码。 plt.savefig('my_fig.png', dpi=my_dpi) # 保存成相同分辨率,使用上述代码 # 如果想把分辨率提高10倍,则可以进行如下方式,则就保存了一个8000X8000的高清图 plt.savefig('my_fig.png', dpi=my_dpi * 10)另外根据另一个回答:How to get matplotlib figure size import matplotlib.plt fig = plt.figure() # 在构建画布的时候就已经有一个默认的分辨率了 size = fig.get_size_inches()*fig.dpi # size in pixels |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |