OpenCV学习
文章平均质量分 61
天狗下凡
螃蟹会不会觉得鱼在天上飞
展开
-
【OpenCV学习】第16课:图像边缘提取 - Sobel算子详细剖析(图像梯度)
int depth, //输出图像深度,填-1表示跟输入图像一致, 由于灰度图是CV_8U,所以Sobel一般使用CV_16S/CV_32F, 需要比输入的灰度图的深度更高, 结果才会更明显。int depth, //输出图像深度,填-1表示跟输入图像一致, 由于灰度图是CV_8U,所以Sobel一般使用CV_16S/CV_32F, 需要比输入的灰度图的深度更高, 结果才会更明显。int dx, //x方向,几阶导数, sobel取1。原创 2022-12-11 18:00:01 · 4036 阅读 · 0 评论 -
【OpenCV学习】第15课:处理卷积边缘问题
(卷积的概念可以看看第14课)// 给目标图像设置边框。原创 2022-12-11 16:07:26 · 892 阅读 · 0 评论 -
【OpenCV学习】第14课:边缘检测与自定义线性滤波(卷积, Rebert算子, Sobel算子, 拉普拉斯算子)
参考文章:http://t.zoukankan.com/whw1314-p-12007928.html。常见的卷积算子(kernel, 核), 这些算子在边缘提取中都经常用到。在图像上使用卷积的目的:模糊图像, 提取边缘轮廓, 图像锐化等。原创 2022-12-11 15:15:18 · 770 阅读 · 0 评论 -
【OpenCV学习】第13课:基本阈值操作
简单点来说就是把图像分割的标尺, 举个栗子, 现在想象一个场景, 一个桌子上有一堆苹果, 现在要求你去将它分为两类, 我们很容易就想到, 把大的划到一边, 小的划到另一边, 那么这个划分大小的标准,具体到某个值, 就是我们所说的阈值, 它是一个划分的标尺。阈值类型 - 阈值反二值化(threshold binary Inverted): 大于阈值的直接赋为最小值(0), 小于阈值的赋为最大值(255)阈值类型 - 阈值取零(threshold to zero): 大于阈值部分不变, 小于阈值部分取零。原创 2022-12-11 12:35:45 · 552 阅读 · 0 评论 -
【OpenCV学习】第12课:特征提取(高斯不同)
看不太清,,,原因是高斯模糊的两个差值很小,所以反映到灰度图上像素值也就很低,这个时候就需要我们用到上边提到的API了, normalize进行归一化显示(我们是线性提亮嘛)原创 2022-12-10 22:20:09 · 720 阅读 · 0 评论 -
【OpenCV学习】第11课:图像金字塔 - 上采样与降采样(高斯金字塔,放大与缩小图像)
参考文章链接:https://blog.csdn.net/qq_54185421/article/details/124350723。原创 2022-12-10 22:00:29 · 1264 阅读 · 0 评论 -
【OpenCV学习】第10课:形态学操作的应用-图像去掉干扰线丶干扰点
int adaptiveMethod, //自适应阈值算法,只能选其中之一: ADAPTIVE_THRESH_MEAN_C,ADAPTIVE_THRESH_GAUSSIAN_C。去干扰线干扰点的操作方法, 大体上与第9课所说的提取水平/垂直线一致, 只是把核改为矩形, 不要线型就行,反正都是通过开操作来实行的。double C, //常量, 可以是正数,0,负数, 它是减去平均或加权平均值后的常数值,通常为正数。由上图结果可以看出,我们的提取不大顺利, 把字母也去掉了一些, 那么我们改一下代码。原创 2022-12-10 20:57:34 · 1712 阅读 · 0 评论 -
【OpenCV学习】第9课:形态学操作的应用-提取水平线丶垂直线
图像在进行形态学操作的时候, 可以通过自定义的结构元素实现结构元素对输入图像的一些对象敏感丶对另外一些对象不敏感, 这样就会让敏感的对象改变而不敏感的对象保留输出。通过使用两个最基本的形态学操作 -来进行提取的操作, 其中的自定义结构元素, 也就是我们说的kernel(核), 常见的核的形状:矩形丶圆丶直线丶磁盘形状丶钻石形状以及各种自定义形状。, 使用不同的结构元素实现对输入图像的操作,从而得到想要的结果。使用均值滤波过后的水平线提取。原创 2022-12-10 20:48:25 · 936 阅读 · 0 评论 -
【OpenCV学习】第8课:形态学操作-开丶闭丶形态学梯度丶顶帽丶黑帽
int OPT: CV_MOP_OPEN/ CV_MOP_CLOSE/ CV_MOP_GRADIENT/ CV_MOP_TOPHAT/ CV_MOP_BLACKHAT (按顺序依次为:开丶闭丶基本梯度丶顶帽丶黑帽)-Mat src: 输入图像。-Mat dst: 输出图像。-kernel: 核。原创 2022-12-10 19:27:59 · 614 阅读 · 0 评论 -
【OpenCV学习】第7课:形态学操作-膨胀与腐蚀
理论形态学操作(morphology operators)-膨胀跟前边的卷积操作类似, 但是膨胀的操作是在核内所有像素值, 取最大的那个来替换中心锚点的值, 并且核的形状可以是矩形丶圆等.原创 2022-12-06 10:54:15 · 592 阅读 · 0 评论 -
【OpenCV学习】第6课:图像模糊(中值滤波,高斯双边滤波)
4.高斯双边滤波有两个核, 一个空域核(上边图那个绿色的格子),一个值域核(用来保留像素值的差异,将像素值的差距限定在一定范围内,差距太大的就不用去模糊)5.高斯双边滤波一般配合提升对比度(filter2D(src,dst,-1,kernel,Point(-1,-1),0))使用,可以达到美颜的效果。-3 sigma space 如果d的值大于0,则这个3就无效,否则就是根据这个值来推算d的值。3.高斯双边滤波:是一种边缘保留的滤波方法,避免了边缘数据的丢失,保留了图像轮廓不变。原创 2022-12-05 22:12:04 · 831 阅读 · 0 评论 -
【OpenCV学习】第5课:图像模糊(均值滤波,高斯滤波)
参考文章链接:https://blog.csdn.net/qq_30460949/article/details/121990114。原创 2022-12-05 21:44:09 · 1130 阅读 · 0 评论 -
【OpenCV学习】第4课:操作像素(提高图像的亮度对比)
图像的变化可以为:像素变化(点操作), 领域操作(区域),g(i,j) = α*f(i,j) + β, β是增益变量。原创 2022-12-05 18:48:16 · 262 阅读 · 0 评论 -
【OpenCV学习】第3课:线性混合
大致可以理解为在第1张图像上通过f(x)获取到1个像素点的值,再通过g(x)获取到第2张图像同1个位置的像素点值,两者各取1部分混合形成第3张图像相同位置的像素点值。g(x),其中α的取值在0~1之间,原创 2022-12-05 18:26:52 · 74 阅读 · 0 评论 -
【OpenCV学习】第2课:图片锐化 - 矩阵的掩膜操作(卷积中的锐化算子)
/ 2.获取像素矩阵的指针,索引i表示第几行,从0开始。上下左右4个像素值分别乘以-1,再加上中间像素值乘以5的值,最后得到的值再重新赋值给中间像素,这就是掩膜的一个例子。// 3.获取某行指针。矩阵的掩膜操作比较简单,根据掩膜来重新计算每个像素的像素值,掩膜(mask)也被称为核(kernel)CV_Assert(myImage.depth()==CV_8U);这里用到的掩膜,其实只是数学中卷积的概念的一个应用。原创 2022-12-05 15:28:06 · 595 阅读 · 0 评论 -
【OpenCV学习】第1课:加载丶修改丶显示丶保存图像
这俩函数一般是联合使用的,你要先创建一个窗口(nameWindows),再用这个窗口去显示图像(imshow)参数1:文件路径与名称, 例"C:\Users\yfc\Desktop\textImage.png"参数3:源和目标图像的色彩空间, 例CV_BGR2HLS其BGR2HLS就是目标图像的色彩空间。显示: cv::namedWindows与cv::imshow联合使用。参数1:窗口名称,通过这个名称找到namedWindows创建的窗口。保存: cv::imwrite。加载: cv::imread。原创 2022-12-05 14:56:52 · 483 阅读 · 0 评论