一 學習內容
1 除錯sobel邊緣檢測
1.1 分別生成水平方向和豎直方向的梯度影象
1.2 合成總梯度影象
1.3 呼叫函式addweighted生成總梯度影象
備註:由於邊緣檢測運算元對雜訊敏感,因此在邊緣檢測之前必須用高斯模糊對影象降噪,然後轉換成灰度影象,再進行邊緣檢測。
二 **除錯
#include #include #include using namespace cv;
int main()
namedwindow("figure1",cv_window_autosize);
imshow("figure1",src);
//學習新內容:除錯sobel邊緣檢測
//1. 預處理:高斯模糊+轉灰度影象
//由於邊緣檢測運算元對雜訊敏感,因此在邊緣檢測之前必須用高斯模糊對影象降噪,然後轉換成灰度影象,再進行邊緣檢測。
gaussianblur(src, dst_blur, size(3, 3),0,0);
namedwindow("figure2", cv_window_autosize);
imshow("figure2", dst_blur);
cvtcolor(dst_blur,dst_gray,cv_bgr2gray);
namedwindow("figure3", cv_window_autosize);
imshow("figure3", dst_gray);
//2. 分別生成水平方向和豎直方向的梯度影象
mat grad_x, grad_y;
sobel(dst_gray, grad_x,cv_16s,0,1,3);
sobel(dst_gray, grad_y, cv_16s, 1,0,3);
convertscaleabs(grad_x,grad_x);//轉化為絕對值
convertscaleabs(grad_y, grad_y);//轉化為絕對值
namedwindow("figure4_grad_x", cv_window_autosize);
imshow("figure4_grad_x", grad_x);
namedwindow("figure4_grad_y", cv_window_autosize);
imshow("figure4_grad_y", grad_y);
//3. 合成總梯度圖
mat gradimage = mat(grad_x.size(),grad_x.type());
int width = grad_x.cols;
int height = grad_x.rows;
for (int row = 0; row < height; row++) }
namedwindow("figure5_gradimage", cv_window_autosize);
imshow("figure5_gradimage", gradimage);
//4.直接呼叫函式addweighted,生成總梯度圖
mat gradimage2;
addweighted(grad_x,1, grad_y,1,0, gradimage2);
namedwindow("figure6_gradimage2", cv_window_autosize);
imshow("figure6_gradimage2", gradimage2);
waitkey(0);
return 0;
}
三 除錯結果
Objective C 學習記錄 17
1.uiscrollview的分頁與uipagecontrol 開啟scrollview的翻頁功能,預設以scrollview的size為1頁 scrollview.pagingenabled yes 通過scrollview的delegate實現控制pagecontrol顯示頁碼的兩種常用方法 使...
opencv學習筆記(17)開閉操作
閉操作 close api使用及效果 示例用圖 1.影象形態學的重要操作之一,基於膨脹與腐蝕操作組合形成的。2.主要是應用在二值影象分析中,灰度影象亦可。3.開操作 腐蝕 膨脹,輸入影象 結構元素。1.消除影象中小的干擾區域,消除3 3 5 5或更大的噪點。2.水平或者垂直線提取。1.影象形態學的重...
學習opencv記錄 三)
include include highgui.h include cv.h 這種訪問操作比cvget系列函式更快,因為不需要入棧出棧,只是通過指標偏移來進行的 int main int argc,char argv cvmat mat cvinitmatheader mat,3,6,cv 32fc...