opencv學習筆記 28 點多邊形測試

2021-10-21 10:59:46 字數 1734 閱讀 8081

概念介紹 - 點多邊形測試

測試乙個點是否在給定的多邊形內部,邊緣或者外部

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