我正在处理一些RGB图像,为了实现某些功能,我必须使用一些转换值将RGB图像转换为灰度,然后在操作之后,我希望在转换值的帮助下再次将输出图像转换为RGB格式。如何达到同样的效果?在
Opencv conversioncv2.cvtColor(image, cv2.COLOR_GRAY2RGB)
不会生成原始图像,因为它将采用所有3个通道的值相同,所以我应用了一个转换
我把RGB图像读作:
img=cv2.imread("image.png")
然后,我将RGB值提取为:
^{pr2}$然后我应用变换得到的灰度图像如下:
^{3}$如何将经过再次处理后的灰度图像转换回给定变换值的RGB?在
当你把红色、绿色和蓝色通道加在一个灰色通道中时,你在浪费信息,你无法(从数学上)推断出如何再次将一个单一的灰度值分割成多种颜色。在
根据你的图像的灰度变换,你可以把它转换成另一种灰度图像。在
从数学上讲,将灰度图像转换回RGB是不可能的。但是,您可以使用}执行灰度处理,并将结果转换回RGB。在
cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
将RGB转换为HSV空间,对{我想你是在尝试独立地操作频道,因为你有一些算法需要灰度图像。你可以用几种不同的方法来解决这个问题。在
那么,让我们从这幅图开始:
您可以在不将图像分割为其组件通道的情况下,这样做“就地”:
输出
或者,您可以将图像分割为其组件通道,分别处理它们(可能并行),然后在最后将它们重新组合为BGR图像:
^{pr2}$相关问题 更多 >
编程相关推荐