1、原理
膨胀:取卷积核内的像素最大值。
腐蚀:取卷积核内的像素最小值。
去掉垂直线,首先把图像转为二值图像(线条为255),通过getStructuringElement获取卷积核,定义一个Size(9,1)大小的核,带入dilate方法,卷积核内取最大值,OK。相反,线条为0(黑色),则可以使用erode方法。
去掉水平线,略。
2、测试代码
void test8() {
Mat src = imread("D:/line.png");
imshow("src", src);
Mat gray,gray1;
cvtColor(src, gray, CV_BGR2GRAY);
cvtColor(src, gray1, CV_BGR2GRAY);
threshold(gray, gray, 200, 255, THRESH_BINARY);
Mat kernel = getStructuringElement(CV_SHAPE_RECT, Size(9, 1), Point(-1, -1));
dilate(gray, gray, kernel);
imshow("gray", gray);
Mat kernel1= getStructuringElement(CV_SHAPE_RECT, Size(1, 9), Point(-1, -1));
dilate(gray1, gray1, kernel1);
imshow("gray1", gray1);
}