概念介紹 - 點多邊形測試
測試乙個點是否在給定的多邊形內部,邊緣或者外部
pointpolygontest
(inputarray contour,
// 輸入的輪廓
point2f pt,
// 測試點
bool measuredist // 是否返回距離值,如果是false,1表示在內面,0表示在邊界上,-1表示在外部,true返回實際距離
)
返回資料是double型別
步驟
構建一張400x400大小的, mat::zero(400, 400, cv_8uc1)
畫上乙個六邊形的閉合區域line
發現輪廓
對影象中所有畫素點做點 多邊形測試,得到距離,歸一化後顯示。
例項**
#include
#include
#include
using
namespace std;
using
namespace cv;
intmain
(int argc,
char
** ar**)
//尋找輪廓
vector> contours;
vector hierachy;
mat csrc;
src.
copyto
(csrc)
;findcontours
point(0
,0))
;//找到每個點離多邊形的距離
mat raw_dist = mat::
zeros
(csrc.
size()
, cv_32fc1)
;for
(int row =
0; row < raw_dist.rows; row++)}
//繪製
double minvalue, maxvalue;
minmaxloc
(raw_dist,
&minvalue,
&maxvalue,0,
0,mat())
; mat drawimg = mat::
zeros
(src.
size()
, cv_8uc3)
;for
(int row =
0; row < drawimg.rows; row++
)else
if(dist <0)
else}}
const
char
* output_win =
"point polygon test demo"
;char input_win=
"input image"
;namedwindow
(input_win, cv_window_autosize)
;namedwindow
(output_win, cv_window_autosize)
;imshow
(input_win, src)
;imshow
(output_win, drawimg)
;waitkey(0
);return0;
}
(30)點多邊形測試
點多邊形測試 概念介紹 測試乙個點是否在給定的多邊形內部,邊緣或者外部 api介紹 cv pointpolygontest pointpolygontest inputarray contour,輸入的輪廓,乙個輪廓乙個輪廓的做 point2f pt,測試點 測試的畫素點的位置 bool measu...
Opencv學習筆記(三) 特徵點匹配
在我們提取到帶特徵點和得到特徵描述符後,接下來的工作就是將這些個特徵點進行匹配。一 特徵點匹配位於feature2d的模組中所以在使用的時候應該在標頭檔案中加入 include features2d features2d.hpp 在這個模組中用有三個類 它們的繼承關係如下 對於特徵點匹配有兩種方法 ...
opencv學習筆記
總的來說,我們學習影象處理的就是從vs和opencv開始的。而在之前的學習中,我們使用了前人的通過或攝像頭的人臉識別 並順利執行了程式。順理成章地,接下來的階段就是將這些 給 吃透 理解並吸收,掌握其中的知識。下面就是今天對於 中幾個重要組成部分的學習心得總結。一 命名空間 using namesp...