OpenCV基礎入門(九)

2021-10-08 14:27:48 字數 1718 閱讀 6290

第九節、形態學操作(一)

原理:

影象形態學操作 – 基於形狀的一系列影象處理操作的合集,主要是基於集合論基礎上的形態學數學

形態學有四個基本操作:腐蝕、膨脹、開、閉

膨脹與腐蝕是影象處理中最常用的形態學操作手段

形態學操作-膨脹

跟卷積操作類似,假設有影象a和結構元素b,結構元素b在a上面移動,其中b定義其中心為錨點,計算b覆蓋下a的最大畫素值用來替換錨點的畫素,其中b作為結構體可以是任意形狀

形態學操作-腐蝕

腐蝕跟膨脹操作的過程類似,唯一不同的是以最小值替換錨點重疊下影象的畫素值

相關api

getstructuringelement(int shape, size ksize, point anchor)

- 形狀 (morph_rect \morph_cross \morph_ellipse)

- 大小

- 錨點 預設是point(-1, -1)意思就是中心畫素

動態調整結構元素大小

trackbar – createtrackbar(const string & trackbarname, const string winname,  int* value, int count, trackbarcallback func, void* userdata=0)

其中最中要的是 callback 函式功能。如果設定為null就是說只有值update,但是不會呼叫callback的函式。

**演示:

#include #include using namespace cv;

mat src, dst;

char output_win = "output image";

int element_size = 3;

int max_size = 21;

void callback_demo(int, void*);

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

namedwindow("input image", cv_window_autosize);

imshow("input image", src);

namedwindow(output_win, cv_window_autosize);

createtrackbar("element size :", output_win, &element_size, max_size, callback_demo);//建立滾動條

callback_demo(0, 0);

waitkey(0);

return 0;

}void callback_demo(int, void*)

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 建立一張跟原影象...