我加载了一张图片:
im = cv2.imread(filename)
我想保留图像中心的数据。我创建了一个圆圈作为我想要保留的区域的 mask 。
我用以下方法创建了圆圈:
height,width,depth = im.shape
circle = np.zeros((height,width))
cv2.circle(circle,(width/2,height/2),280,1,thickness=-1)
如何从原始图像中屏蔽掉圆圈外的数据?
masked_data = im * circle
不起作用。
最佳答案
使用 cv2.bitwise_and
并将圆作为掩码传递。
im = cv2.imread(filename)
height,width,depth = im.shape
circle_img = np.zeros((height,width), np.uint8)
cv2.circle(circle_img,(width/2,height/2),280,1,thickness=-1)
masked_data = cv2.bitwise_and(im, im, mask=circle_img)
cv2.imshow("masked", masked_data)
cv2.waitKey(0)
关于python - 如何使用 Numpy/OpenCV 屏蔽图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25074488/