我有输入图像 b,当我这样做时
cv2.imwrite("contor.jpg", b)
我明白了
我只想保留图像 b 中的白色像素,然后删除其余的像素来做我做的事情:
im = cv2.imread("contor.jpg")
im[np.any(im != [255, 255, 255], axis=-1)] = [0,0,0]
cv2.imwrite('box_mask.png', im)
我的问题是每次获得如上所示的输出我必须保存图像 b。通过使用
cv2.imwrite("contor.jpg", b)
然后使用
im = cv2.imread("contor.jpg")
然后将所有非白色像素更改为黑色。我想这样做而不保存图像并每次都读回来
为此,我做了:
im=b.copy()
im[np.any(im != [255, 255, 255], axis=-1)] = [0,0,0]
cv2.imwrite('box_mask.png', im)
为此我收到此错误:
python3 demo2.py --image 1.jpg
Traceback (most recent call last):
File "demo2.py", line 123, in <module>
im[np.any(im != [255, 255, 255], axis=-1)] = [0,0,0]
ValueError: shape mismatch: value array of shape (3,) could not be broadcast to indexing result of shape (1,512,640)
如何避免每次都保存图像 b 并重新阅读?我想直接操作 b 并显示最终结果。

