opencv之點與多邊形位置關係測試

2021-09-29 17:38:25 字數 1634 閱讀 8607

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

api

double cv::pointpolygontest(inputarray contour, point2f pt, bool measuredist)

引數介紹

返回值為double型別

#include

#include

#include

using

namespace cv;

using

namespace std;

intmain

(void

)//繪製六邊形

for(size_t i =

0; i <

6; i++

)namedwindow

("原始"

, window_autosize)

;imshow

("原始"

, src)

;//尋找輪廓

vector> contours;

//定義輪廓點集

vector hierarchy;

//定義輪廓拓撲關係

findcontours

point(0

,0))

;//尋找輪廓

mat raw_dist = mat::

zeros

(src.

size()

, cv_32fc1)

;//儲存點與輪廓的距離資訊

for(size_t row =

0;row

)//行數

for(size_t col =

0; col < raw_dist.cols; col++

)double minvalue, maxvalue;

//定義最大值 最小值變數

minmaxloc

(raw_dist,

&minvalue,

&maxvalue)

;//獲取距離的最大值最小值

mat dst = mat::

zeros

(400

,400

,cv_8uc3)

;//建立乙個rgb3通道圖,用來顯示距離關係

for(size_t row =

0; row < dst.rows; row++

)//行數

for(size_t col =

0; col < dst.cols; col++

)else

if(distance <0)

//多邊形外部

else

//在邊緣上賦值

}namedwindow

("最終"

, window_autosize)

;imshow

("最終"

多邊形與多邊形 位置關係的判斷

c 判斷點的位置方法一 public intisleft point p0,point p1,point p2 private boolpointinfences point pnt1,point fencepnts else if wn 0 return false else return tru...

opencv 多邊形檢測

示例 為7邊形,直接改巨集定義即可 include include include include include define shape 7 要檢測的多邊形邊數shape 檢測形狀 3為三角形,4矩形,5為五邊形 函式功能 用向量來做cos 兩向量之積 兩向量模的乘積求兩條線段夾角 輸入 線段3...

Opencv繪製多邊形

利用opencv繪製多邊形,主要是因為給的資料是4個點,而繪製矩形的函式cv2.rectangle只傳遞兩個點,即左上和右下。繪製矩形框可以參考這裡 就是利用cv2.fillpoly函式 cv2.fillpoly img,area1,area2,area3 2,255,255 image表示處理的 ...