【发布时间】:2020-08-16 11:43:30
【问题描述】:
今天这个问题困扰了我一段时间,写入磁盘然后读取它的解决方案并不是一个好的解决方案,因为我想在保存之前迭代地查看屏幕上的内容。
下面的代码是为了用最少的代码说明问题
我正常导入 numpy 和 CV2,没有问题 然后以这种方式为彩色图像创建一个空的numpy数组(黑色背景)
Xsize = Ysize = 100
img_np = np.zeros([Xsize,Ysize,3])
以下几行用于在 BGR 中将选定像素着色为灰色
img_np[1][1] = [1, 1, 1]
img_np[1][3] = [10, 10, 10]
img_np[1][5] = [20, 20, 20]
img_np[1][7] = [30, 30, 30]
img_np[1][9] = [40, 40, 40]
img_np[1][11] = [100, 100, 100]
img_np[1][13] = [200, 200, 200]
img_np[1][15] = [240, 240, 240]
无论我是否调整大小都会发生此问题..
img_cv = cv2.resize(img_np,(1000,1000), interpolation=cv2.INTER_NEAREST)
cv2.imshow('name',img_cv)
cv2.imwrite('crawltest.png', img_cv)
cv2.imshow 是这样出来的:
而 cv2.imwrite 是这样出来的:
对于那些可能看不到因为他们不会让我的图像出现的人: imshow 图像测试像素在黑场上都是白色的 imwrite 图像测试像素是正确的灰度值
完全让我困惑... 请注意,即使我不调整大小,而只使用 numpy 数组,其结果也相同 [我正在使用 jupyter notebooks 写作,以防万一,虽然它不应该]
有什么想法吗?
【问题讨论】:
-
mul_img = mul_img.astype(np.uint8)之前 imshow 应该工作。