OpenCV中掩膜(mask)图像的创建和使用

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

功能描述

掩模图像(Mask Image)是一种特殊类型的形象数据,在图像处理和计算机视觉中扮演着重要角色。它通常是一个二维数组,与原始图像具有相同的尺寸,其上的每个像素值用来指示对应于原始图像中像素的处理方式。掩模图像主要使用两种基本值:非零值(通常是白色,255)和零值(通常是黑色,0)。这些值分别代表“感兴趣区域”(ROI, Region of Interest)和不感兴趣的区域。

掩模的主要用途包括:

区域选择:在图像处理操作中,仅对掩模中标记为非零的区域应用滤镜、颜色调整或其他效果,而忽略零值区域。
形状提取:结合位运算,从复杂图像中精确提取特定形状或对象。
图像分割:帮助分离前景和背景,尤其是在对象识别和跟踪任务中。
Alpha通道:在图形设计中,掩模可以作为alpha通道来控制透明度,实现图像合成。
数据屏蔽:在数据分析中,用于排除不需要分析的数据部分。
形态学操作:结合膨胀、腐蚀等操作,用于特征增强或去除噪声。

fillPoly() 函数

fillPoly() 的功能是填充由一个或多个多边形所限定的区域。
cv::fillPoly函数用于填充由多个多边形轮廓所限定的区域。该函数能够填充复杂的区域,例如含有空洞的区域、自身相交的轮廓(它们的部分),等等。

原型1


void cv::fillPoly	
(	
	InputOutputArray 	img,
	InputArrayOfArrays 	pts,
	const Scalar & 	color,
	int 	lineType = LINE_8,
	int 	shift = 0,
	Point 	offset = Point() 
)		

参数1

  • 参数 img 图像.
  • 参数 pts 多边形数组,其中每个多边形由顶点数组表示。
  • 参数 color 多边形颜色.
  • 参数 lineType 多边形边线的颜色. 见 LineTypes
  • 参数 shift 顶点坐标中的小数位数.
  • 参数 offset 可选参数,轮廓上所有点的偏移量.

原型2


void cv::fillPoly	
(	
InputOutputArray 	img,
const Point ** 	pts,
const int * 	npts,
int 	ncontours,
const Scalar & 	color,
int 	lineType = LINE_8,
int 	shift = 0,
Point 	offset = Point() 
)		

参数2

  • 参数 img 图像.
  • 参数 pts 多边形数组,其中每个多边形由顶点数组表示。
  • 参数 npts 多边形数组的个数。
  • 参数 ncontours 轮廓的数量
  • 参数 color 多边形颜色.
  • 参数 lineType 多边形边线的颜色. 见 LineTypes
  • 参数 shift 顶点坐标中的小数位数.
  • 参数 offset 可选参数,轮廓上所有点的偏移量.

bitwise_and()函数

函数cv::bitwise_and用于计算两个数组或一个数组与一个标量之间的逐元素按位逻辑与运算。具体规则如下:

  1. 当src1和src2尺寸相同时:
    对于数组中的每个元素I,若mask(I)不等于0,则执行按位与运算:
    dst ( I ) = src1 ( I ) ∧ src2 ( I ) if   mask ( I ) ≠ 0 \texttt{dst} (I) = \texttt{src1} (I) \wedge \texttt{src2} (I) \quad \texttt{if mask} (I) \ne0 dst(I)=src1(I)src2(I)if mask(I

你可能感兴趣的:(OpenCV,opencv,人工智能,计算机视觉)