查看图片是否为三通道图片及将单通道图片转换成三通道图片
参考博客:1.查看非三通道的图片–python链接:https://blog.csdn.net/weixin_43711726/article/details/104346174?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.42422.python 单通道转3通道,tensorflo
参考博客:
1.查看非三通道的图片–python
链接:https://blog.csdn.net/weixin_43711726/article/details/104346174?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242
2.python 单通道转3通道,tensorflow灰度图转RGB图
链接:https://blog.csdn.net/qq_18941713/article/details/93875122?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control
- 一、查看图片是否为三通道
因为彩色图片一般为三通道(RGB)图片,灰度图片为单通道图片,现在得到一张图片要检测其是否为单通道(我在跑代码的时候发现三通道的图片运行成功,而我想要测试的图片却发现无法成功运行,故怀疑图片通道的问题),附上检测代码:
from PIL import Image
import os
path = "./data" # 存放图片的文件夹路径
filelist = os.listdir(path)
print(len(filelist)) # 显示文件夹内有多少张图片
for file in filelist:
img = Image.open("./data/"+file) # 文件夹下的图片
try:
r, g, b = img.split()
except Exception:
print(file) # 显示不是三通道图片的图片名
- 二、将单通道转换成三通道
参考本文上面链接的博文,发现效果还是可以的,就是有多余坐标等信息,并且没有保存处理完之后的图片。我使用了plt的savefig函数用来保存,虽然能保存,却显示的是空白图片且图片分辨率也有问题,因此采用cv2的imwrite函数来实现,可在不损失原图和不增加多余边框的情况下,达到想要图片的效果。附上代码:
from PIL import Image, ImageChops, ImageEnhance
import matplotlib.pyplot as plt
import tensorflow as tf
import numpy as np
import cv2
if __name__ == "__main__":
img_data = Image.open('Cam1_055930_0.jpg', 'r')
# img_data = cv2.imread('Cam1_055930_0.jpg')
# 若图片是以PIL方式读取的,则此处显示的是元胞,若以cv2读取,则是width*heigh*3的数值(单张分辨率*3通道)
print(img_data.size) # (1100,180)
# plt.subplot(1, 2, 1)
# plt.title("origin")
# plt.imshow(img_data)
img = np.array(img_data)
img = img.reshape(180, 1110, 1)
img_tensor = tf.convert_to_tensor(img)
img_tensor = tf.image.grayscale_to_rgb(img_tensor)
sess = tf.Session()
img = sess.run(img_tensor)
print(img_tensor.shape) # (180,1110,3)
# plt.subplot(1, 2, 2)
# plt.subplot()
# plt.title("rgb")
# # plt.savefig('./Cam1.jpg', dpi=100)
# plt.imshow(img)
# plt.show()
cv2.imwrite('./Cam_0.jpg', img) # 保存在当前目录,并取名为Cam_0,格式为jpg
更多推荐
所有评论(0)