机器在学习
图像掩模(image mask):用选定的图像、图形或物体,对待处理的图像(局部或全部)进行遮挡来控制图像处理的区域或处理过程。由于覆盖的特定图像或物体称为掩模(mask),在做图像处理的时候,对图像进行遮罩的需求非常多,接下来就以下面这张兔子的图片进行演示
import cv2 import numpy as np imgName = './rabbit.jpg' img = cv2.imread(imgName) # 展示原图 cv2.imshow("img", img) # 创建掩膜 mask = np.zeros([img.shape[0], img.shape[1]], dtype=np.uint8) mask[50:250, 130:320] = 255 image = cv2.add(img, np.zeros(np.shape(img), dtype=np.uint8), mask=mask) # 展示掩膜图片 cv2.imshow("mask", mask) # 展示添加掩膜效果图片 cv2.imshow("image", image) cv2.waitKey() cv2.destroyAllWindows()
可以看到,这里创建了一个方形掩膜,同样的,如果我们需要创建圆形掩膜,可以按照下面这种方式进行添加。
import cv2 import numpy as np imgName = './rabbit.jpg' img = cv2.imread(imgName) # 展示原图 cv2.imshow("img", img) # 创建掩膜 x = 220 y = 150 r = 100 mask = np.zeros(img.shape[:2], dtype=np.uint8) mask = cv2.circle(mask, (x, y), r, (255, 255, 255), -1) image = cv2.add(img, np.zeros(np.shape(img), dtype=np.uint8), mask=mask) # 展示掩膜图片 cv2.imshow("mask", mask) # 展示添加掩膜效果图片 cv2.imshow("image", image) cv2.waitKey() cv2.destroyAllWindows()
遮挡掩膜的原理很简单,首先创建一个和图片同样大小的全黑图像,再把需要显示的区域像素改成白色,最后使用cv2.add叠加image和mask就可以实现图像的遮挡显示。
The End
已发布
分类
标签:
您的电子邮箱地址不会被公开。 必填项已用*标注
评论 *
显示名称
电子邮箱地址
网站地址
Δ
发表回复