【发布时间】:2018-08-19 10:21:42
【问题描述】:
看起来我在理解图像如何在 numpy 数组中表示方面存在一些根本性的差距。
img = np.ones([100,100,3], dtype=np.uint8)*255
plt.imshow(img)
上面的代码创建了一个“白色”的 3 通道图像。
每个像素的值为 [255,255,255]
明白了。
现在我想创建一个“白色”灰度图像。我真的不需要 RGB 通道来存储白色图像,是吗?
img_bw = np.ones([100,100], dtype=np.uint8)*255
plt.imshow(img_bw, cmap = "gray")
即使每个像素位置的值为 255,这也会创建“黑色图像”?
好的,让我把我之前的 3 通道白色图像转换成灰度图,看看 numpy 数组是什么样子的。
img_bw1 = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
plt.imshow(img_bw1, cmap = "gray")
这也给了我一个“黑色图像”?
那么灰度“白色图像”的 numpy 矩阵到底是什么样的呢?
img = io.imread("https://www.colorcombos.com/images/colors/FFFFFF.png" , as_grey=True)
plt.imshow(img*255, cmap = "gray")
这是一张白色的图片。该矩阵中的每个像素的值都在 216 及以上
plt.imshow(img, cmap = "gray")
这也是一张白色的图片。该矩阵中的每个像素的值都在 0.86 及以上。
我完全迷路了。
问题 -
如何在 numpy 中创建灰度二维白色图像?
为什么不使用 cv2.Color 将 numpy 中的 3 通道白色图像转换为灰度图像给我一个白色图像?
【问题讨论】:
标签: python numpy opencv image-processing scikit-image