最近在專案中需要提取多邊形區域,並傳入到運算元中計算,故記錄一下對多邊形mask區域的提取方法。
#include using namespace cv;
int main()
關鍵函式為:fillpoly,該函式提供兩種呼叫介面,分別如下:
void fillpoly(mat& img, const point** pts,
const int* npts, int ncontours,
const scalar& color, int linetype=8, int shift=0,
point offset=point() );
void fillpoly(inputoutputarray img, inputarrayofarrays pts,
const scalar& color, int linetype=8, int shift=0,
point offset=point() );
這裡使用到第二種呼叫介面,其具體實現**如下:
void cv::fillpoly(inputoutputarray img, inputarrayofarrays pts,
const scalar& color, int linetype, int shift, point offset)
fillpoly(img, (const point**)ptsptr, npts, (int)ncontours, color, linetype, shift, offset);
}
可見,最終還是呼叫第乙個介面實現。 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表示處理的 ...
求任意多邊形面積(凹多邊形和凸多邊形)
遇到問題 已知多邊形的各個左邊點,要求多邊形的面積 然後我搜尋了下看到這篇文章 這個人說的不多,但是簡單明瞭 首先已知各定點的座標分別為 x1,y1 x2,y2 x3,y3 xn,yn 則該多邊形的面積公式為 s 1 2 x1 y2 x2 y1 x2 y3 x3 y2 xk yk 1 xk 1 yk...