Python对图像进行掩膜遮罩处理

图像掩模(image mask):用选定的图像、图形或物体,对待处理的图像(局部或全部)进行遮挡来控制图像处理的区域或处理过程。由于覆盖的特定图像或物体称为掩模(mask),在做图像处理的时候,对图像进行遮罩的需求非常多,接下来就以下面这张兔子的图片进行演示

原图【rabbit.jpg】
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()
画一个方形mask
将原图与mask进行叠加

可以看到,这里创建了一个方形掩膜,同样的,如果我们需要创建圆形掩膜,可以按照下面这种方式进行添加。

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()
画一个圆形的mask
将原图与mask进行叠加

遮挡掩膜的原理很简单,首先创建一个和图片同样大小的全黑图像,再把需要显示的区域像素改成白色,最后使用cv2.add叠加image和mask就可以实现图像的遮挡显示。

The End


已发布

分类

标签:

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注