用python可以实现图像的处理吗_详细讲解 Python实现对图像进行掩膜遮罩处理

本文通过实例详细讲解了如何使用Python的cv2和numpy库实现图像的掩膜遮罩处理,包括方形和圆形掩膜的创建,以及如何将掩膜应用到原始图像上,展示了图像处理的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

d5a304a4a2b44327868e8a2a5077be80.png相关学习推荐:python教程

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

首先看效果图:dfb8b980f27b2e8d7c460f41c904b191.pnge946645b8bb95914619735fc45792244.pngb21bac04fab029ab0daa407bc300cf46.png

Python实现对图像进行掩膜遮罩处理导入所需的库

创建掩膜图像

方形掩膜

圆形掩膜

掩膜与原始图像进行拼接

展示图像

效果展示

总结

导入所需的库

此次需要的库资源有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)复制代码

效果展示

原始图像:afc9c0c9c4d0ad0188224c90a14116ba.png

方形掩膜图像:fd2af6334c0b1409268c9d86d3017477.png

方形掩膜与原图合并图像:d062685c6aa894d9bced1e340772fa66.png

圆形掩膜图像:497e8b7205b75e22e684c005f3abf698.png

圆形掩膜与原图合并图像:6cb034c3c1b6e7df39032177c7a3e539.png

总结

遮挡掩膜的原理很简单,首先创建一个和图片同样大小的全黑图像,再把需要显示的区域像素改成白色,最后使用cv2.add叠加image和mask就可以实现图像的遮挡显示。想了解更多编程学习,敬请关注php培训栏目!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值