OpenCV筆記(十一)形態學操作應用

2021-10-23 02:41:11 字數 2631 閱讀 6688

二、處理步驟

三、綜合例程

影象形態學操作時候,可以通過自定義的結構元素實現結構元素對輸入影象一些物件敏感、另外一些物件不敏感,這樣就會讓敏感的物件改變而不敏感的物件保留輸出。通過使用兩個最基本的形態學操作 –膨脹腐蝕,使用不同的結構元素實現對輸入影象的操作、得到想要的結果。

- 膨脹,輸出的畫素值是結構元素覆蓋下輸入影象的最大畫素值

- 腐蝕,輸出的畫素值是結構元素覆蓋下輸入影象的最小畫素值

二值影象與灰度影象上的膨脹操作

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

mat dest, // 二值影象

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

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

// adaptive_thresh_mean_c , adaptive_thresh_gaussian_c

int thresholdtype,// 閾值型別

int blocksize, // 塊大小

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

mat gray_src;//轉換為灰度影象

cvtcolor(src, gray_src, cv_bgr2gray);

imshow("gray image", gray_src);

mat binimg;//二值化

adaptivethreshold(~gray_src, binimg, 255, adaptive_thresh_mean_c, thresh_binary, 15, -2);

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 temp;

erode(binimg, temp, kernel); //腐蝕操作

dilate(temp, dst, kernel); //膨脹操作

// morphologyex(binimg, dst, cv_mop_open, vline);

bitwise_not(dst, dst);

//blur(dst, dst, size(3, 3), point(-1, -1));

imshow("final result", dst);

waitkey(0);

return 0;

}

opencv 形態學操作

include include includeusing namespace std using namespace cv 開操作 先腐蝕後膨脹 作用 能夠去掉一些小的物件,保留大的物件 閉操作 先膨脹後腐蝕 作用 將小洞給填充上 形態學梯度 膨脹減去腐蝕 作用 求出邊緣 頂帽變換 原影象與開操作之...

opencv形態學操作

1.腐蝕和膨脹都是相對高亮部分的操作 2.開運算 先腐蝕後膨脹 把細微連在一起的兩塊目標分開了,消除暗背景下的較亮區域。閉運算,閉運算是對影象先膨脹後腐蝕 看上去將兩個細微連線的圖塊封閉在一起,閉運算可以用來消除噪音。因為先高亮部分膨脹抵消了小的黑點,大的黑點經過接下來的腐蝕又再次還原回去,小的黑點...

Opencv 形態學基礎操作

morphologyex src,dst,cv mop blackhat,kernel 操作介面 imshow str0utput,dst cv mop open 先腐蝕 後膨脹 去掉小的物件背景黑色 cv mop close 先腐蝕 後膨脹 去掉小的物件背景白色 cv mop gradient 膨...