測試乙個點是否在給定的多邊形內部,邊緣或者外部
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表示處理的 ...