OpenCV學習記錄20

2021-09-26 21:52:27 字數 1203 閱讀 7780

一 學習內容

1. 霍夫變換--直線檢測

1.1 在canny邊緣檢測基礎上,進行霍夫變換直線檢測

二 **除錯

#include #include #include using namespace cv;

using namespace std;

int main()

namedwindow("figure1",cv_window_autosize);

imshow("figure1", src);

//學習新內容:在邊緣檢測基礎上,進行霍夫變換直線檢測(思考:能否檢測其他的線型?)

//1. 高斯模糊+灰度轉化

gaussianblur(src,dst_blur,size(3,3),0,0);

cvtcolor(dst_blur,dst_gray,cv_bgr2gray);

namedwindow("figure2_gray", cv_window_autosize);

imshow("figure2_gray", dst_gray);

邊緣檢測

canny(dst_gray,dst_canny,100,200);

namedwindow("figure3_canny", cv_window_autosize);

imshow("figure3_canny", dst_canny);

//3. 霍夫變換

建立陣列,用於存放檢測結果

vectorplines;//前面需要新增語句using namespace std;

呼叫函式

houghlinesp(dst_canny, plines,1,cv_pi /180.0,10,5,20);//需要除錯最後乙個引數,使得檢測出的直線連續、不間斷。

scalar color = scalar(0,0,200);

for (size_t i = 0; i < plines.size(); i++)

namedwindow("figure4line", cv_window_autosize);

imshow("figure4line", src);

waitkey(0);

return 0;

}

三 除錯結果

學習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...