opencv学习-形态学操作应用-提取水平与垂直线
Posted 殇堼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv学习-形态学操作应用-提取水平与垂直线相关的知识,希望对你有一定的参考价值。
提取步骤
1.转化为灰度图像
cvtColor(src,dst,color_BGR2GRAY)
2.转化为二值图像
adaptiveThreshold
3.定义结构元素
4.开操作 (腐蚀+膨胀)提取 水平与垂直线
代码
#include <opencv2\\opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
Mat src, grayImg, binImg, dest,dest1;
//1、读取和显示图片
src = imread("D:/images/morph01.png");
if (src.empty()) {
cout << "图片打开失败!" << endl;
return -1;
}
imshow("原图像", src);
//2、转为灰度图
cvtColor(src, grayImg, COLOR_BGR2GRAY);
imshow("灰度图", grayImg);
//3、转为二值图像
adaptiveThreshold(grayImg, binImg, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, -2);
imshow("二值图像", binImg);
//4、构建结构元素
Mat kernel = getStructuringElement(MORPH_RECT, Size(1, 20),Point(-1,-1));
//5、开操作
erode(binImg, dest, kernel);
imshow("腐蚀后", dest);
dilate(dest, dest1, kernel);
//或是:morphologyEx(binImg, dest, MORPH_OPEN, kernel)等同于上面的先腐蚀和后膨胀;
imshow("最终结果", dest1);
waitKey(0);
}
以上是关于opencv学习-形态学操作应用-提取水平与垂直线的主要内容,如果未能解决你的问题,请参考以下文章
youcans 的 OpenCV 例程200篇130. 形态学之提取水平和垂直线