我正在从事一个 Unet 语义分割项目,我需要在 Python 中使用 OpenCV 处理 4 通道图像,我是这个领域的新手。我在 YouTube 上找到了一个出于相同目的的教程(链接到教程),但教程中提供的代码使用 RGB 和 cv2.imread() 来读取图像,我认为这不适用于 4 通道图像。
我的目标是调整提供的代码以处理 4 通道图像,但我不确定如何相应地修改它。
这是教程中代码的简化版本:
import os
import cv2
from matplotlib import pyplot as plt
temp_img = cv2.imread('C:/Users/PREDATOR/Desktop/4_channel_image.tif')
temp_img = cv2.cvtColor(temp_img,cv2.COLOR_BGR2RGB)
plt.imshow(temp_img)
这是错误:
---------------------------------------------------------------------------
error Traceback (most recent call last)
Cell In[5], line 2
1 temp_img = cv2.imread('C:/Users/PREDATOR/Desktop/4_channel_image.tif')
----> 2 temp_img = cv2.cvtColor(temp_img,cv2.COLOR_BGR2RGB)
3 plt.imshow(temp_img) #change 0 to 1 2 or 3 to view other channels"""
error: OpenCV(4.9.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:196: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
我尝试了下面的代码并且它有效:
import os
import tifffile
from matplotlib import pyplot as plt
temp_img = tifffile.imread('C:/Users/PREDATOR/Desktop/4_channel_image.tif')
plt.imshow(temp_img)