關於harris角點檢測的原理以及matlab版本,請移步
小白初學,這裡採用opencv實現之,把自己遇到的疑問一一表述出來,以備後用。
cv_(s|u|f)c
第一種形式,返回特定尺寸與型別的零矩陣,比如 mat a = mat::zeros(3,3,cv_32fc1);
第二種形式,程式中採用的方式,mat::zeros(src.size(), cv_32fc(6));
我的理解是這兩種形式實質一樣
函式原型, cornereigenvalsandvecs( inputarray src, outputarray dst,
int blocksize, int ksize,
int bordertype = border_default );
函式呼叫參看後面的程式。
1#include 2 #include 3 #include 4
using
namespace
cv;5
using
namespace
std;
6mat src, gray_src;
7mat harris_dst, harrisrspimg;
8double
harris_min_rsp;
9double
harris_max_rsp;
10int qualitylevel = 30;11
const
char* harris_win = "
custom harris corners dector";
12int max_count = 100;13
void customharris_demo(int, void *);
1415
intmain()
1624 namedwindow("
input_image
", cv_window_autosize);
25 imshow("
input_image
", src);
26cvtcolor(src, gray_src, color_bgr2gray);
27//
計算特徵值
28int blocksize = 3;29
int ksize = 3;30
double k = 0.04;31
32 harris_dst = mat::zeros(src.size(), cv_32fc(6)); //
6通道33 harrisrspimg =mat::zeros(src.size(), cv_32fc1);
34 cornereigenvalsandvecs(gray_src, harris_dst, blocksize, ksize, 4
);35
//計算響應
36for (int row = 0; row < harris_dst.rows; row++)
3744
}45 minmaxloc(harrisrspimg, &harris_min_rsp, &harris_max_rsp, 0, 0, mat());//
求最大最小響應
46namedwindow(harris_win, cv_window_autosize);
47 createtrackbar("
quality value
", harris_win, &qualitylevel, max_count, customharris_demo);
48 customharris_demo(0, 0
);49 waitkey(0
);50
return0;
51}52void customharris_demo(int, void*)
56 mat resultimg =src.clone();
57float t = harris_min_rsp + (((double)qualitylevel) / max_count)*(harris_max_rsp -harris_min_rsp);
58for (int row = 0; row < src.rows; row++) 64}
65}6667
imshow(harris_win, resultimg);
68 }
opencv自定義卷積核
include opencv2 imgproc imgproc.hpp include opencv2 highgui highgui.hpp using namespace cv mat get blur kernel int kernel size 獲得歸一化濾波的卷積核 int main in...
opencv 自定義線性濾波
卷積概念 卷積是影象處理的乙個操作,是依據kernel對影象每個畫素點進行操作,kernel本質上是乙個固定大小的矩陣陣列,其中心為錨點。把kernel放在畫素的陣列之上,求錨點周圍覆蓋的畫素乘積之和 包括錨點 用其來替換錨點下的畫素值。稱之為卷積操作。公式如圖所示。依次對影象進行該操作。常見運算元...
opencv 自定義線性濾波
自定義線性濾波 效果 在學習自定義線性濾波前,需要了解卷積的相關概念 影象中的卷積 最常見的運算元 在邊緣檢測中經常用到,是canny邊緣檢測中重要的一步,通過sobel運算元得到梯度 銳化的掩膜中間是5,拉普拉斯運算元中間是4 拉普拉斯運算元和sobel運算元被用來尋找梯度 尋找影象的邊緣 和掩膜...