图像掩模(image mask):用选定的图像、图形或物体,对待处理的图像(局部或全部)进行遮挡来控制图像处理的区域或处理过程。由于覆盖的特定图像或物体称为掩模(mask),在做图像处理的时候,对图像进行遮罩的需求非常多,接下来就以下面这张猫狗的图片进行演示,我选择的是小猫的头像。
首先看效果图:
导入所需的库
此次需要的库资源有cv2
和numpy
,可通过pip install xxx
进行下载。
import cv2
import numpy as np
创建掩膜图像
创建掩膜具体需要看图像的尺寸,根据图像的尺寸所需创建自己的掩膜,当然掩膜的想也可以自己选择。我这里创建的掩膜有方形掩膜和圆形掩膜。
方形掩膜
掩膜坐标为[10:170, 50:220]。
# 创建掩膜
mask = np.zeros([img.shape[0], img.shape[1]], dtype=np.uint8)
mask[10:170, 50:220] = 255
圆形掩膜
掩膜坐标:
x = 140
y = 100
r = 80
# 创建掩膜
x = 140
y = 100
r = 80
mask = np.zeros(img.shape[:2], dtype=np.uint8)
mask = cv2.circle(mask, (x, y), r, (255, 255, 255), -1)
掩膜与原始图像进行拼接
图片合并用到了 cv2.add,将掩膜与原始图像进行拼接合并。
image = cv2.add(img, np.zeros(np.shape(img), dtype=np.uint8), mask=mask)
展示图像
# 展示原图
cv2.imshow("img", img)
# 展示掩膜图片
cv2.imshow("mask", mask)
# 展示添加掩膜效果图片
cv2.imshow("image", image)
效果展示
原始图像:
方形掩膜图像:
方形掩膜与原图合并图像:
圆形掩膜图像:
圆形掩膜与原图合并图像:
总结
遮挡掩膜的原理很简单,首先创建一个和图片同样大小的全黑图像,再把需要显示的区域像素改成白色,最后使用cv2.add叠加image和mask就可以实现图像的遮挡显示。
资源传送门
- 关注【做一个柔情的程序猿】公众号
- 在【做一个柔情的程序猿】公众号后台回复 【python资料】【2020秋招】 即可获取相应的惊喜哦!
「❤️ 感谢大家」
- 点赞支持下吧,让更多的人也能看到这篇内容(收藏不点赞,都是耍流氓 -_-)
- 欢迎在留言区与我分享你的想法,也欢迎你在留言区记录你的思考过程。
- 教你如何用python轻轻松松操作Excel、Word、CSV,一文就够了,赶紧码住!!!
- 程序员一般喜欢浏览的40个网站,屯了这么多年,我就不藏私了,个人强烈推荐
- 基于混沌Logistic加密算法的图片加密与还原
- 教你用python编写二十几行的代码绘制动态烟花
- python错误:AttributeError: ‘module‘ object has no attribute ‘xxxxx‘,10种总结(成功解决)
- 教你如何用python轻轻松松解析XML和PDF,一文就够了,赶紧码住!!!
- python之详细图像仿射变换讲解(图像平移、旋转、缩放、翻转),一文就够了,赶紧码住
- python调用cv2时成功解决问题:ValueError: not enough values to unpack (expected 3, got 2)
- Python实现树莓派摄像头持续录像并传送到主机
- python之图像仿射变换实战-提取手写数字图片样本
- 教你用Python如何玩转声音文件,将声音按照语音间隙切割为片段