OpenCV基礎入門(十)

2021-10-08 14:27:48 字數 2128 閱讀 1105

第十節、形態學操作(二)

開操作- open

先腐蝕後膨脹

可以去掉小的物件,假設物件是前景色,背景是黑色

閉操作-close

先膨脹後腐蝕(bin2)

可以填充小的洞(fill hole),假設物件是前景色,背景是黑色

形態學梯度- morphological gradient

膨脹減去腐蝕

又稱為基本梯度(其它還包括-內部梯度、方向梯度)

頂帽– top hat

頂帽 是原影象與開操作之間的差值影象

黑帽

黑帽是閉操作影象與源影象的差值影象

相關api

morphologyex(src, dest, cv_mop_blackhat, kernel);

- mat src – 輸入影象

- mat dest – 輸出結果

- int opt – cv_mop_open/ cv_mop_close/ cv_mop_gradient / cv_mop_tophat/ cv_mop_blackhat 形態學操作型別

**演示:

#include #include using namespace cv;

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

char input_win = "input image";

char output_win = "result image";

namedwindow(input_win, cv_window_autosize);

imshow(input_win, src);

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 入門基礎

這是深圳大學於老師的文件裡的程式,就是為了鞏固基礎,加深對影象的理解。using namespace std using namespace cv int main for int i 0 i colorimage.rows i imshow 灰度圖 grayimage imshow 彩色圖 col...

OpenCV基礎入門(五)

理論 線性混合操作 線性影象混合公式 g x 1 a f0 x a f1 x a 0,1 其中a的取值範圍為0 1之間 相關api addweighted void cvaddweighted const cvarr src1,double alpha,const cvarr src2,double...

OpenCV基礎入門(六)

第六節 調整影象亮度與對比度 影象變換可以看作如下 畫素變換 點操作 g i,j af i,j 其中a 0,是增益變數。鄰域操作 區域 調整影象亮度和對比度屬於畫素變換 點操作 重要的api mat new image mat zeros image.size image.type 建立一張跟原影象...