将 RGBY 图像组合成具有所有颜色通道的单个图像的正确方法是什么?
What is right way to combine RGBY images to single image which has all color channels?
我正在尝试将多个颜色通道图像组合成单个图像。喜欢:
img1 = cv2.imread('This image is red channel image')
img1 = cv2.imread('This image is red channel image')
img1 = cv2.imread('This image is red channel image')
img1 = cv2.imread('This image is red channel image')
现在,我在网上进行了研究,得到了 2 个不同的答案,第一种方式:
finalImage = np.stack((img1, img2, img3, img4), axis=-1)
我搜索并得到的其他方法是:
finalImage = img1/4 + img2/4 + img3/4 + img4/4
哪一个是正确的方法?
提前致谢。
您可以像这样组合单独的频道:
# images are loaded in "bgr" format
img_r = cv2.imread("red.png");
img_g = cv2.imread("green.png");
img_b = cv2.imread("blue.png");
# split and extract relevant channel
_,_,r = cv2.split(img_r);
_,g,_ = cv2.split(img_g);
b,_,_ = cv2.split(img_b);
# merge together as one image
bgr = cv2.merge(b,g,r);
您也可以将它们加载为灰度并合并而不进行拆分,但是您需要记住将它们乘以它们的相对比例因子。 OpenCV的BGR->Gray的灰度算法是这样的:
Y = 0.299 R + 0.587 G + 0.114 B
这取决于你想要什么。
如果您想读取 4 个不同的单通道图像并沿最终轴堆叠它们以获得 4 通道图像,请使用:
finalImage = np.stack((img1, img2, img3, img4), axis=-1)
finalImage
的形状将是
(H, W, 4)
如果您想读取 4 个不同的单通道图像并对它们进行平均以获得 1 通道图像,请使用:
finalImage = img1/4 + img2/4 + img3/4 + img4/4
finalImage
的形状将是
(H, W)
我怀疑你想要这个。恕我直言,您似乎不太可能将 Y
通道与颜色通道混为一谈,但奇怪的事情发生了。
我正在尝试将多个颜色通道图像组合成单个图像。喜欢:
img1 = cv2.imread('This image is red channel image')
img1 = cv2.imread('This image is red channel image')
img1 = cv2.imread('This image is red channel image')
img1 = cv2.imread('This image is red channel image')
现在,我在网上进行了研究,得到了 2 个不同的答案,第一种方式:
finalImage = np.stack((img1, img2, img3, img4), axis=-1)
我搜索并得到的其他方法是:
finalImage = img1/4 + img2/4 + img3/4 + img4/4
哪一个是正确的方法? 提前致谢。
您可以像这样组合单独的频道:
# images are loaded in "bgr" format
img_r = cv2.imread("red.png");
img_g = cv2.imread("green.png");
img_b = cv2.imread("blue.png");
# split and extract relevant channel
_,_,r = cv2.split(img_r);
_,g,_ = cv2.split(img_g);
b,_,_ = cv2.split(img_b);
# merge together as one image
bgr = cv2.merge(b,g,r);
您也可以将它们加载为灰度并合并而不进行拆分,但是您需要记住将它们乘以它们的相对比例因子。 OpenCV的BGR->Gray的灰度算法是这样的:
Y = 0.299 R + 0.587 G + 0.114 B
这取决于你想要什么。
如果您想读取 4 个不同的单通道图像并沿最终轴堆叠它们以获得 4 通道图像,请使用:
finalImage = np.stack((img1, img2, img3, img4), axis=-1)
finalImage
的形状将是
(H, W, 4)
如果您想读取 4 个不同的单通道图像并对它们进行平均以获得 1 通道图像,请使用:
finalImage = img1/4 + img2/4 + img3/4 + img4/4
finalImage
的形状将是
(H, W)
我怀疑你想要这个。恕我直言,您似乎不太可能将 Y
通道与颜色通道混为一谈,但奇怪的事情发生了。