OpenCV图像处理教程C++(十一) 形态学操作应用--提取水平与垂直线
2018-08-15 14:22
375 查看
原理方法:
图像形态学操作时候,可以通过自定义的核实现对输入图像一些对象敏感,另外一些对象不敏感,这样就会让敏感的对象改变而不敏感的对象保留输出,通过使用两个基本的形态学操作-膨胀与腐蚀,使用不同的核实现对输入图像的操作,得到想要的结果,
膨胀–输出的像素值是核覆盖下输入图像的最大像素值
腐蚀–输出的像素值是核覆盖下输入图像的最小像素值
提取步骤:
输入图像色彩图像imread
转换为灰度图像-cvColor
转换为二值图像-adaptiveThreshold
定义结构元素(核)
开操作(腐蚀+膨胀)提取水平与垂直线
adaptiveThreshold函数详解:
adaptiveThreshold( InputArray src://源图像 OutputArray dst://输出图像,与源图像大小一致 int adaptiveMethod://在一个邻域内计算阈值所采用的算法,有两个取值,分别为 //ADAPTIVE_THRESH_MEAN_C的计算方法是计算出领域的平均值再减去第七个参数double C的值 //ADAPTIVE_THRESH_GAUSSIAN_C的计算方法是计算出领域的高斯均值再减去第七个参数double C的值 int thresholdType://这是阈值类型,只有两个取值,分别为 THRESH_BINARY 和THRESH_BINARY_INV int blockSize://adaptiveThreshold的计算单位是像素的邻域块,邻域块取多大,就由这个值作决定 double C://在对参数int adaptiveMethod的说明中,我已经说了这个参数的作用,从中可以看出, //这个参数实际上是一个偏移值调整量)
代码:
#include <opencv2/opencv.hpp> #include<iostream> #include<math.h> #include <string> #include<fstream> using namespace cv; using namespace std; int main() { Mat src, grasrc, adasrc, dst; src = imread("C:\\Users\\Administrator\\Desktop\\pic\\11.jpg"); imshow("input", src); cvtColor(src, grasrc,CV_BGR2GRAY); imshow("outputgray", grasrc); adaptiveThreshold(grasrc, adasrc, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, -2); imshow("binary", adasrc); Mat hline = getStructuringElement(MORPH_RECT, Size(src.cols / 16, 1));//水平结构元素(核) Mat cline= getStructuringElement(MORPH_RECT, Size( 1,src.rows/16));//垂直结构元素(核) Mat kernel = getStructuringElement(MORPH_RECT, Size(5, 5));//矩形结构元素 morphologyEx(adasrc, dst, MORPH_OPEN, cline); //blur(dst, dst, Size(3, 3)); imshow("output", dst); waitKey(0); }
结果:
相关文章推荐
- opencv 形态学操作应用-提取水平与垂直线
- 【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- 【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- 【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽
- 【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- 【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- OpenCV图像处理-区域分割-形态学操作应用
- OpenCV图像处理教程C++(十三)图像上采样与降采样以及基本阈值操作
- 【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- 【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- 【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- 【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- 学习【OpenCV入门教程之十一】 形态学图像处理(二)开运算,闭运算,梯度运算,顶帽,黑帽---思维导图笔记
- 【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- [转]【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- 【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- 【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- 【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- opencv6.1-imgproc图像处理模块之平滑与形态学操作
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀