这篇文章主要介绍图像模糊和形态学操作中用到的一些API。
一、图像模糊
- 均值模糊 blur(Mat src, Mat dst, Size(x,y), Point(-1,-1));
参数1:输入图片
参数2:输出图片
参数3:x*y大小的内核
参数4:锚点(默认-1,-1) - 高斯模糊 GaussianBlur(Mat src, Mat dst, Size(11, 11), sigmax, sigmay);
参数1:输入图片
参数2:输出图片
参数3:内核大小
参数4:高斯核函数在X方向上的标准偏差
参数5:高斯核函数在Y方向上的标准偏差 - 中值模糊 medianBlur(Mat src, Mat dst, ksize)
参数1:输入图片
参数2:输出图片
参数3:滤波模板的尺寸大小(大于1的奇数) - 双边滤波 bilateralFilter(Mat src, Mat dst, d = 15, double sigmaColor, double sigmaSpace)
参数1:输入图片
参数2:输出图片
参数3:计算的半径,半径之内的像素会被纳入计算,如果提供-1则根据sigma space参数取值
参数4:sigma color决定多少差值之内的像素会被计算
参数5:如果d的值大于0则声明无效,否则用它来计算d值
二、腐蚀与膨胀
- 获取结构元素 Mat getStructuringElement(int shape, Size esize, Point anchor = Point(-1, -1));
参数1:内核形状
- 矩形:MORPH_RECT;
- 交叉形:MORPH_CROSS;
- 椭圆形:MORPH_ELLIPSE;
参数2:内核尺寸
参数3:内核锚点 - 膨胀 dilate(src, dst, kernal)
参数1:输入图片
参数2:输出图片
参数3:膨胀操作的核 - 腐蚀 erode(src, dst, kernal)
参数1:输入图片
参数2:输出图片
参数3:腐蚀操作的核
三、形态学操作
- 形态学操作 morphologyEx(src, dest, CV_MOP_BLACKHAT, kernel);
参数1:输入图片
参数2:输出图片
参数3:形态学操作类型
- 开操作:CV_MOP_OPEN -先腐蚀后膨胀
- 闭操作:CV_MOP_CLOSE -先膨胀后腐蚀
- 形态学梯度:CV_MOP_GRADIENT -膨胀减去腐蚀
- 顶帽:CV_MOP_TOPHAT -原图像与开操作图像的差值图像
- 黑帽:CV_MOP_BLACKHAT -闭操作图像与原图像的差值图像
参数4:结构元素 - 自适应二值化 adaptiveThreshold( Mat src, Mat dest, double maxValue, int adaptiveMetad, int thresholdType, int blockSize, double C)
参数1:输入的灰度图像
参数2:输出的二值图像
参数3:二值图像最大值
参数4:自适应方法
- ADAPTIVE_THRESH_MEAN_C 计算出领域的平均值再减去第七个参数double C的值
- ADAPTIVE_THRESH_GAUSSIAN_C 计算出领域的高斯均值再减去第七个参数double C的值
参数5:阈值类型
- THRESH_BINARY
- THRESH_BINARY_INV
参数6:块大小
参数7:最终阈值
本文作为自学路上的笔记使用,有错误还请各位大佬指正[抱拳]。