形態學操作應用 提取水平與垂直線

2021-09-17 07:19:33 字數 2055 閱讀 9025

vs2017&opencv4.0

#include #include #include using namespace cv;

int main(int argc, char** ar**)

char input_win = "input image";

char output_win = "result image";

namedwindow(input_win, window_autosize);

imshow(input_win, src);

mat gray_src;

cvtcolor(src, gray_src, cv_bgr2gray);//改變顏色

namedwindow("gray image", window_autosize);

imshow("gray image", gray_src);

mat binimg;

adaptivethreshold(~gray_src, binimg, 255, adaptive_thresh_mean_c, thresh_binary, 15, -2);// 轉換為二值影象

/*解析adaptivethreshold函式:adaptivethreshold(

mat src, // 輸入的灰度影象

mat dest, // 二值影象

double maxvalue, // 二值影象最大值

int adaptivemethod // 自適應方法,只能其中之一 –

// adaptive_thresh_mean_c , adaptive_thresh_gaussian_c

int thresholdtype,// 閾值型別

int blocksize, // 塊大小

double c // 常量c 可以是正數,0,負數)*/

namedwindow("binary image", window_autosize);

imshow("binary image", binimg);

// 水平結構元素

mat hline = getstructuringelement(morph_rect, size(src.cols / 16, 1), point(-1, -1));

// 垂直結構元素

mat vline = getstructuringelement(morph_rect, size(1, src.rows / 16), point(-1, -1));

// 矩形結構

mat kernel = getstructuringelement(morph_rect, size(3, 3), point(-1, -1));

mat temp1;

erode(binimg, temp1, hline);//腐蝕

dilate(temp1, dst, hline);//膨脹,提取水平

bitwise_not(dst, dst);

namedwindow("final result1", window_autosize);

imshow("final result1", dst);

mat temp2;

erode(binimg, temp2, vline);//腐蝕

dilate(temp2, dst, vline);//膨脹,提取垂直

bitwise_not(dst, dst);

namedwindow("final result2", window_autosize);

imshow("final result2", dst);

mat te***;

erode(binimg, te***, kernel);//腐蝕

dilate(te***, dst, kernel);//膨脹,去掉干擾項

bitwise_not(dst, dst);

namedwindow("final result3", window_autosize);

imshow("final result3", dst);

waitkey(0);

return 0;

}

opencv形態學操作,提取水平與垂直線

可做驗證碼識別 mat temp,temp1 cvtcolor src,temp,cv bgr2gray imshow temp temp adaptivethreshold temp,temp1,255,adaptive thresh mean c,thresh binary,15,2 轉換為二值...

opencv形態學操作提取水平與垂直線,消除斜線

adaptivethreshold 自適應閾值操作api void adaptivethreshold inputarray src,outputarray dst,double maxvalue,int adaptivemethod,int thresholdtype,int blocksize,...

提取水平與垂直線

輸入彩色影象 imread 轉換為灰度影象 cvtcolor 轉換為二值影象 adaptivethreshold 定義結構元素 開操作 膨脹 腐蝕 提取水平與垂直線 include include using namespace cv using namespace std int main int...