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);
}
src.png
gray.png
gray1.png