[英]Is there a way to convert a grayscale image to an RGB image without altering the image?
我正在嘗試使用EMNIST數據訓練一個resnet50模型,該模型是一個包含300k字母和數字圖像的數據集。 Resnet50需要3維圖像作為其輸入,而不是灰度圖像,因此我嘗試將所有灰度圖像都轉換為RGB,但它卻不能像我想要的那樣工作。 當我使用pyplot.imshow查看它們時,RGB圖像確實與灰度圖像不同,這是奇怪的,因為這些命令實際上只是在3維上復制粘貼相同的灰度矩陣。
下面是我嘗試過的3個命令:
> resizedImageRGB = cv2.cvtColor(resizedImage,cv2.COLOR_GRAY2RGB)
> resizedImageRGB = np.repeat(resizedImage[:,:,np.newaxis],3,-1) arr =
> np.expand_dims(resizedImage, axis=2) resizedImageRGB =
> np.concatenate((arr,arr,arr), axis=2)
字母之一的灰度和RGB圖像分別給出:
從灰度到RGB近似在數學上很難。 考慮從RGB到灰度值Y的公式(之一):
Y = 0.299R + 0.587G + 0.114B
現在您可以想象,朝另一個方向嘗試從Y導出R,G和B值需要太多的信息(1個等式3個未知數)。 人們實際上將神經網絡用於此類工作。
相反,適合您的方法是相反的方法。 也就是說,如果您只能訪問灰度數據(或與此相關的1通道數據),則應修改網絡以使其接受正確的輸入。
我不確定您要從問題中使用什么庫或確切的代碼,但是總的來說這應該不太難。
通常,您在網上找到的代碼具有使用提供的正確輸入參數為您創建這些網絡的功能。
def ResNET(shape=(256,256,3), ...):
some_code()
那么您通常可以只傳遞自己的輸入:
net = ResNET(shape=(256,256,1))
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.