OpenCV學習記錄11

2021-09-26 07:35:26 字數 2246 閱讀 2086

一 學習內容

1 開操作

2 閉操作

3 形態學梯度操作

4 頂帽

5 黑帽

二 **記錄

#include #include #include using namespace cv;

mat src, dst1, dst2, dst3, dst4, dst5 ,dst6;

int element_default_size = 3;

int element_max_size = 10;

void callback_open(int,void*);

void callback_close(int, void*);

void callback_gradient(int, void*);

void callback_tophat(int, void*);

void callback_blackhat(int, void*);

int main()

namedwindow("figure1", cv_window_autosize);

imshow("figure1", src);

// 學習新內容

// 1 轉化為灰度影象

cvtcolor(src, dst1, cv_bgr2gray);

namedwindow("figure2", cv_window_autosize);

imshow("figure2", dst1);

// 2 對原始影象src進行開操作:先腐蝕,後膨脹

namedwindow("figure3_open", cv_window_autosize);

//調整結構元素的尺寸

createtrackbar("adjustsize", "figure3_open",&element_default_size, element_max_size,callback_open);

callback_open(0,0);

// 3 對灰度影象dst1進行閉操作:先膨脹,後腐蝕

namedwindow("figure4_close",cv_window_autosize);

createtrackbar("adjustsize","figure4_close",&element_default_size,element_max_size,callback_close);

callback_close(0,0);

// 4 形態學梯度:膨脹-腐蝕

namedwindow("figure5_gradient",cv_window_autosize);

createtrackbar("adjustsize","figure5_gradient",&element_default_size,element_max_size,callback_gradient);

callback_gradient(0,0);

// 5 形態學頂帽:原影象-開操作

namedwindow("figure6_tophat", cv_window_autosize);

createtrackbar("adjustsize", "figure6_tophat", &element_default_size, element_max_size, callback_tophat);

callback_tophat(0, 0);

// 6 形態學黑帽:閉操作-原影象

namedwindow("figure7_blackhat", cv_window_autosize);

createtrackbar("adjustsize", "figure7_blackhat", &element_default_size, element_max_size, callback_blackhat);

callback_blackhat(0, 0);

waitkey(0);

return 0;

}void callback_open(int,void*)

void callback_close(int,void*)

void callback_gradient(int, void*)

void callback_tophat(int, void*)

void callback_blackhat(int, void*)

三 除錯結果

學習opencv記錄 三)

include include highgui.h include cv.h 這種訪問操作比cvget系列函式更快,因為不需要入棧出棧,只是通過指標偏移來進行的 int main int argc,char argv cvmat mat cvinitmatheader mat,3,6,cv 32fc...

OpenCV學習記錄5

一 學習內容 1 兩張影象按權重相加 2 兩張影象相乘 應該可用於頻域濾波吧 二 include include using namespace std using namespace cv int main int argc,char ar if src2.data namedwindow fig...

OpenCV學習記錄6

一 學習內容 1 獲取影象座標處的畫素值,並修改圖對比度 二 include include using namespace std using namespace cv int main int argc,char ar char figure name figure1 namedwindow f...