- 博客(16)
- 收藏
- 关注
原创 Opencv C++ Laplance算子、Sobel算子
Sobel算子和 Laplance算子都可以锐化图像,但Sobel算子是一阶导数(用梯度幅度实现)锐化图像。Laplace算子可以实现图像的锐化(通常称“高通滤波”),拉普拉斯是二阶导数算子,因此会突出图像中的急剧灰度过渡,并且不强调缓慢变化的灰度区域。将拉普拉斯图像与原图像相加,可以恢复背景特征,同时保留拉普拉斯的锐化效果。拉普拉斯是最简单的各向同性导数算子(这种核的响应与图像中灰度不连续的方向无关),对于两个变量的图像f(x,y),它定义为。公式(1)可以用图1中的核对图像进行卷积运算实现;
2023-12-25 18:36:39
476
原创 Opencv C++ 检测点在轮廓的位置
pointPolygonTest用于判断一个点是否在一个多边形内。函数会返回一个double uuuuu 类型的值。//bool measureDist:如果为true,该返回值为点到变的最近距离;当为false,则返回-1,+1,0;//InputArray contour:输入的轮廓;//Point2f pt:输入被检测的点;
2023-04-15 11:23:10
408
原创 Opencv C++ 图像的矩
/InputArray array:输入图像(单通道8-bit类型的图像)或点集(1xN或Nx1维,类型为Point或Pointf);//bool binaryImage = false :输入是否为二值图像(该参数仅用于图像),如果为ture,所有非0像素都被视为1;在图像处理中,矩是用来描述图像形状的一种数学工具,它可以用于计算图像的质心、面积、中心矩等特征。
2023-04-13 16:44:11
189
1
原创 Opencv C++ 查找轮廓的凸包、多边形、矩形、多边形的外接圆
假定坐标系的 X 轴指向右侧,Y 轴指向上方,如果为 true,则输出凸包的方向为顺时针方向。输出的类型取决于vector的类型;输入轮廓,可以是一个 vector 类型或者一个 Mat 类型的点集。输出的多边形近似,可以是一个:vector 类型或者一个 Mat 类型的点集;如果为 true,则输出多边形是封闭的,否则为非封闭的;输入的点集,可以是一个 vector 类型或者一个 Mat 类型的点集;输出的凸包的点集(凸包的点集是原始点集的子集);
2023-04-13 14:27:27
398
原创 Opencv C++ 查找轮廓并绘制
检测到的轮廓,每个轮廓都存储为点的向量(vectorcontours);有关层次结构的可选信息(仅当您只想绘制某些轮廓时才需要)如果为 2,则函数绘制轮廓、所有嵌套轮廓、所有嵌套到嵌套轮廓等;指定轮廓的近似方法,即指定在轮廓点集中保留哪些点。表示要绘画哪一个轮廓。如果为负数,则绘制所有轮廓;绘制轮廓线的粗细,如果为负数,则填充整个轮廓;所有输入的轮廓,每个轮廓都存储为一个点矢量;如果为 1,则该函数绘制轮廓和所有嵌套轮廓;如果为 0,则仅绘制指定的轮廓;
2023-04-11 20:14:41
701
原创 Opencv C++ 模板匹配(matchTemplate)
对比的结果图像,如果目标图像尺寸大小是W x H,模板图像是w x h,那么结果图像的大小是W-w+1 x H-h+1 且它的类型是32-bit的浮点型;函数是用来比较模板图片和目标图片之间的相似度,它返回的是一副灰度图像,其每个像素值表示模板在对应位置和尺度上与目标图像的匹配程度。而当待匹配区域与模板之间存在遮挡或者镜像反转等情况时,需要进行模板匹配的目标图像,它必须是8-bit 或32-bit的浮点型;模板图像,尺寸不能大于目标图像且类型要相同;当待匹配区域的颜色比模板颜色亮时,使用。
2023-04-10 09:53:43
1028
原创 Opencv C++ 绘制直方图、直方图比较、直方图反向投影
输入的数组(图像)都应该有相同的深度(CV_8U,CV_16U,CV32F)和一样的尺寸。如果dims=1,则输出的直方图为一个 1 X histSizedede 的矩阵,这个矩阵存放像素出现的次数;如果dims=2,则输出的直方图为一个 hSize X wSize 的矩阵;在范围归一化的情况下,要归一化到的范数值或较低的范围边界;在范围归一化的情况下的上范围边界;选择输入源数组(图像)的通道,计算该通道的直方图;表示要计算直方图的通道的取值范围;表示直方图是否归一化的标志;输出已归一化的数组(图像);
2023-03-29 21:25:46
1002
原创 const限定符(对象、引用、指针、顶层)
是让指针指向一个常量对象(”指针常量“),这样可以防止使用该指针来修改所指向的值。是将指针本身声明为常量(”常量指针“),这样可以防止改变指针指向的位置。有两种不同的方式将const关键字用于指针。指向常量对象的常量指针。
2023-03-17 11:20:14
104
原创 总结:尺度不变特征变换(SIFT)
SIFT特征(称为关键点)对图像的尺度图像的尺度并非指图像的大小,而是指图像的模糊程度σ)和旋转是不变的,并且对仿射失真、三维视点变化、噪声和光照变化具有很强的鲁棒性。SIFT的输入是一张图像,输出的是一个n维特征向量,向量的元素是不变的特征描述子。
2023-03-05 17:03:44
1290
原创 Opencv C++ 形态学图像处理(腐蚀、膨胀、开运算、闭运算)
形态学运算是用集合来定义的。在图像处理(主要在二值图像上)中,我们使用两类像素集合的形态学:目标元素和结构元(SE)。通常,目标定义为前景像素集合。结构元可以按照前景像素和背景像素来规定的。
2023-02-25 14:15:00
1578
原创 Opencv C++ 图像模糊(均值模糊、中值模糊、高斯模糊、双边模糊)
/anchor:锚点,将均值赋予卷积核的中心位置;//borderType:边界样式,表示如何确定图像范围外的像素取值。//borderType:边界样式,决定用什么方式处理边界。//sigmaX:卷积核在X轴方向上的标准差。//sigmaY:卷积核在Y轴方向上的标准差。//d:模糊期间使用的各像素领域的直径。其中:μ---------x的均值。σ--------x的标准差。//ksize:均值核的大小。//ksize:中值核的大小。//ksize:高斯核的大小。//src:输入的图像。
2023-02-16 11:17:30
1045
原创 Opencv C++ 绘制多边形API(直线、椭圆、矩形、圆)和putText
Line type:一个可选参数,表示使用行的类型。startAngle:椭圆开始绘制的角度。Size:椭圆的长半轴和短半轴的长度。endAngle:椭圆结束绘制的角度。thickness:圆线框的宽度。Point:中文字体左下角的坐标。shift:坐标点小数点的位数。thickness:椭圆的线宽。shift:坐标点小数点的位数。thickness:矩形的线宽。shift:坐标点小数点的位数。shift:坐标点小数点的位数。thickness:字体的粗细。thickness:线的宽度。
2023-02-05 20:49:25
361
原创 Opencv C++ 数据类型Mat、Point、Rect、Scalar、RNG
Mat::zeros(image.size,image.type())//创建像素全为0的图像(黑色)image.clone(dst) 或 dst=image.clone()image.copeTo(dst)或dst=image.copeTo()定义一个小数组(例如:创建一个kernel卷积核)用create的方法创建图像。读取图像第一行的像素。对图像数据进行全复制。
2023-02-01 11:14:34
1363
2
原创 Opencv C++ 图像像素操作
使用image.converTo(dst,type)对图像进行类型转换。image.at(x,y)[i]读取三通道图像的像素值。image.at(x,y)读取单通道图像的像素值。在执行像素操作之前,我们需要读取图像的宽、高、通道数;获取图像的通道数:image.channels()获取浮点类型(Vec3f)三通道像素值。CV_8UC1为单通道uchar类型。CV32F1 为单通道float类型。获取图像的宽:image.cols。获取图像的高:image.rows。
2023-01-16 21:45:40
852
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人