Python 如何在不显式保存图像的情况下执行OpenCV变换
当我输入图像b时Python 如何在不显式保存图像的情况下执行OpenCV变换,python,python-3.x,opencv,computer-vision,Python,Python 3.x,Opencv,Computer Vision,当我输入图像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.imwri
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)
python3demo2.py--image 1.jpg
回溯(最近一次呼叫最后一次):
文件“demo2.py”,第123行,在
im[np.any(im!=[255,255,255],轴=-1)]=[0,0,0]
ValueError:形状不匹配:形状(3,)的值数组无法广播到形状(1512640)的索引结果
如何避免每次保存图像b并重新读取?我想直接操作b并显示最终结果。好的,这相对容易。我提到 通过这样做:
im=b.copy()
im[im != 255] = 0
cv2.imshow("out.jpg",im)
cv2.waitKey(0)
我解决了这个问题您是否在询问如何将numpy数组转换为可显示图像?或者如何在不存储到磁盘的情况下使用内存映像?