您现在的位置是:群英 > 开发技术 > Python语言
Python怎样对图像做掩膜遮罩处理,步骤是什么
Admin发表于 2022-08-20 17:56:151128 次浏览
今天这篇给大家分享的知识是“Python怎样对图像做掩膜遮罩处理,步骤是什么”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,对此分享发大家做个参考,希望这篇“Python怎样对图像做掩膜遮罩处理,步骤是什么”文章能帮助大家解决问题。


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

首先看效果图:

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

  • 导入所需的库
  • 创建掩膜图像
    • 方形掩膜
    • 圆形掩膜
  • 掩膜与原始图像进行拼接
  • 展示图像
  • 效果展示
  • 总结

导入所需的库

此次需要的库资源有cv2numpy,可通过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怎样对图像做掩膜遮罩处理,步骤是什么的介绍啦,需要的朋友可以参考上述内容,希望对大家有帮助,欢迎关注群英网络,小编将为大家输出更多高质量的实用文章!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: 图像掩模
相关信息推荐
2022-08-04 17:44:45 
摘要:两种检测方法:1、使用array_key_exists()检测,语法“array_key_exists(指定键,指定数组)”,如果键存在则返回true,如果键不存在则返回false。2、利用“$数组名["指定键"]”语句访问指定数组元素,再利用isset()函数检测该数组元素是否存在,语法“isset($数组名["指定键"])”,如果键存在则返回TRUE,否则返回FALSE。
2022-09-06 17:48:48 
摘要:在开发中,数组的使用场景非常多,平日中也涉及到很多数组相关操作。本篇文章就归纳总结了一些常见的操作方法分享给大家,要是在开发中能信手拈来,可大大提高开发效率。
2022-06-02 17:17:36 
摘要:实现方法:1、用“array_unique(数组)”分别给两个数组去除重复值;2、用“array_merge_recursive(去重数组1,去重数组2)”合并两个去重后的数组即可,若有键名相同的情况,则将该键名对应的键值合并为一个子数组。
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部