一、問題:直接將轉好的灰度圖像輸入神經網絡,發現
FileNotFoundError: [Errno 2] No such file or directory: 'home/JPEGImages/Image_24.jpg'
二、分析:灰度圖像只有一個通道,而RGB有三個通道
三、解決:將一個通道的灰度圖像,復制兩次,得到三通道所需圖像
import cv2
import os
from PIL import Image
import numpy as np
file_dir='home/JPEGImages2/' #'輸入文件夾/'
out_dir = 'home/JPEGImages/' #'輸出文件夾/'
a = os.listdir(file_dir)
# img = Image.open("home/img/Image_01.jpg") #單個圖像打開方法
for i in a:
print(i)
I = Image.open(file_dir + i)
L = I.convert('L')
a= np.array(L) # 轉化成numpy數組
image = np.expand_dims(a, axis=2)
image = np.concatenate((image, image, image), axis=-1) # axis=-1就是最后一個通道
# image.save(out_dir + i) #保存圖片(將圖像保存成圖像)
cv2.imwrite(out_dir + i, image) # 保存圖片(將數組保存成圖像)
# print(image)
參考鏈接:
https://blog.csdn.net/jacke121/article/details/80086866(python單通道轉3通道)
https://blog.csdn.net/wp1988/article/details/86062473(RGB變單通道灰度圖像)
https://blog.csdn.net/zgcr654321/article/details/88015327(數組保存成圖像幾種方法,他也有附參考stackoverflow的)
https://stackoom.com/question/3WAWn/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E5%B8%A6%E6%9C%89%E7%81%B0%E5%BA%A6%E5%9B%BE%E5%83%8F%E7%9A%84%E9%A2%84%E5%85%88%E8%AE%AD%E7%BB%83%E7%9A%84%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C(看了之后沒有選擇改變原來的網絡,而選用了現在的方法)
