超详细注释之OpenCV制作图像Mask
作者:程序媛一枚~ 时间:2021-10-20 14:15:34
这篇博客将介绍如何使用OpenCV制作Mask图像掩码。使用位运算和图像掩码允许我们只关注图像中感兴趣的部分,截取出任意区域的ROIs。
应用:
图像感兴趣区域的截取;
图像融合:构建透明的叠加层;
1. 效果图
原始图如下:(老九门颖宝&佛爷~)
矩形掩码 VS 效果图如下:(使用矩形掩码,只提取图像中包含人物的区域,而忽略其他区域)
圆形掩码 VS 效果图如下:(圆形掩模显示在左边,掩模的应用在右边。实质上可以使用任意形状的掩码图像,如矩形、圆、线、多边形等从图像中提取区域)
2. 源码
# 分别使用矩形和圆形遮罩从图像中提取身体和脸部。
# USAGE
# python opencv_masking.py
import argparse
import cv2
# 导入必要的包
import numpy as np
# 构建命令行参数及解析
# --image 输入图像路径
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", type=str, default="yc.jpg",
help="path to the input image")
args = vars(ap.parse_args())
# 加载原始输入图像,并展示
image = cv2.imread(args["image"])
cv2.imshow("Original", image)
# 掩码和原始图像具有相同的大小,但是只有俩种像素值:0(背景忽略)、255(前景保留)
mask = np.zeros(image.shape[:2], dtype="uint8")
cv2.rectangle(mask, (30, 90), (280, 440), 255, -1)
cv2.imshow("Rectangular Mask", mask)
# 应用掩码图像
masked = cv2.bitwise_and(image, image, mask=mask)
cv2.imshow("Rectangular Mask Applied to Image", masked)
cv2.waitKey(0)
# 构造一个圆形掩码(半径为140px,并应用位运算)
mask = np.zeros(image.shape[:2], dtype="uint8")
cv2.circle(mask, (155, 200), 140, 255, -1)
masked = cv2.bitwise_and(image, image, mask=mask)
# 展示输出图像
cv2.imshow("Circular Mask", mask)
cv2.imshow("Circular Mask Applied to Image", masked)
cv2.waitKey(0)
参考
https://www.pyimagesearch.com/2021/01/19/image-masking-with-opencv/
来源:https://blog.csdn.net/qq_40985985/article/details/118251920
标签:OpenCV,图像Mask,python
0
投稿
猜你喜欢
Python中设置变量作为默认值时容易遇到的错误
2023-09-14 09:32:00
Python里disconnect UDP套接字的方法
2023-03-26 02:48:00
解决pygal.style的LightColorizedStyle参数问题
2023-09-20 06:39:02
Python利用OpenCV和skimage实现图像边缘检测
2023-01-27 01:08:43
情人节快乐! python绘制漂亮玫瑰
2021-02-07 18:22:48
Centos6.5和Centos7 php环境搭建方法
2023-11-14 19:25:38
pandas 使用merge实现百倍加速的操作
2022-06-11 08:22:28
解决vue项目input输入框双向绑定数据不实时生效问题
2024-05-28 15:42:13
python实现进度条的多种实现
2021-03-20 10:39:52
使用Python实现图像融合及加法运算
2021-03-03 06:19:42
javascript十个最常用的自定义函数(中文版)
2024-04-16 09:26:38
python中的np.argmax() 返回最大值索引号
2022-08-07 14:22:57
python tkinter GUI绘制,以及点击更新显示图片代码
2021-07-27 14:11:33
pyqt实现.ui文件批量转换为对应.py文件脚本
2022-01-22 03:32:26
asp如何验证日期输入是否正确?
2010-06-10 18:38:00
jupyter实现重新加载模块
2023-12-16 20:46:45
python中Matplotlib绘制直线的实例代码
2022-09-24 18:27:52
Python中itertools模块用法详解
2023-05-28 05:00:27
详解Python如何实现对比两个Excel数据差异
2023-06-14 00:37:10
Python基于checksum计算文件是否相同的方法
2022-11-08 20:30:48