python将四通道图片转为三通道图片

问题:

        在做实验的时候,使用的数据集是tif格式的图片(png图片格式也可以是四通道),由于是四通道的图片在使用

plt.imshow(img)

时发现无法绘制出图片,因此试着输出图片的shape,才发现是四通道的图片。下面是使用的解决方法。

解决方法:

(1)使用cv2包

import cv2

img_path = "./data/1.tif"
save_path = './data/2.png'

# 其实使用的方法非常简单,就是使用cv2.imread()读取四通道图片
# 图片格式会自动转为三通道格式。
img = cv2.imread(img_path)

# 再通过cv2.imwrite()直接保存,图片就保存为三通道
# 之后用其他方式再读取就是三通道格式
cv2.imwrite(save_dir, img)

(2)使用PIL包

from PIL import Image
import matplotlib.pyplot as plt

img_path = "./data/1.tif"
save_path = './data/2.png'

img = Image.open(img_path)
img = img.convert("RGB") 
img.save(save_path)

        第一次使用这个方法的时候使用的保存方式为plt.imsave(save_path, img)发现保存的图片和一开始的图片变的不一样,可能是因为img的格式是<class ‘PIL.Image.Image’>,使用plt.imsave()保存的格式不正确。如果img是numpy的格式使用plt.imsave()就没有出现错误。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年8月9日
下一篇 2023年8月9日

相关推荐