18輪廓 繪製方形,原型

2021-08-18 08:09:59 字數 1491 閱讀 7907

用cvseq的函式建立圓和矩形,這兩個影象用點序列來表示。

有關序列的讀寫方法可以自行學習,這裡只給出乙個示例

#include 

#include

#include

using

namespace

std;

using

namespace cv;

#define cvx_red cv_rgb(0xff, 0x00, 0x00)

#define cvx_green cv_rgb(0x00, 0xff, 0x00)

#define cvx_blue cv_rgb(0x00, 0x00, 0xff)

void drawbox(iplimage* img)

/*2、計算cvbox2d結構表示矩形的4頂點*/

cvboxpoints(box, point); //計算二維盒子頂點,把box的點賦值給point

/*3、把float型別的點轉化成int型別*/

cvpoint pt[4];

for ( i=0; i<4; i++)

/*4、開闢乙個記憶體管理器並建立乙個序列*/

cvmemstorage* store = cvcreatememstorage(0);

cvseq* seq = cvcreateseq(cv_seq_eltype_point | cv_seq_kind_curve | cv_seq_flag_closed,sizeof(cvcontour),sizeof(cvpoint),store);

/*5、資料的儲存和提取*/

for (int j = 0; j < 4; j++)

for (int j = 0; j < seq->total; j++)

/*6、繪製圖形*/

cvdrawcontours(img,seq,cv_rgb(255,255,255),cv_rgb(255,255,255),1,3,8);

cvshowimage("box", img);

cvreleasememstorage(&store);

} void drawcircle(iplimage* img)

for(int x=25+50; x>25; x--)

for (int j = 0; j < seq->total; j++)

cvdrawcontours(img,seq,cv_rgb(255,255,255),cv_rgb(255,255,255),1,3,8);

cvshowimage("circle", img);

cvreleasememstorage(&store);

} int main()

結果如下:

21 22輪廓繪製(EmguCV學習)

輪廓近似方法 3 cvinvoke.drawcontours 函式 contouridx 控制繪製當前輪廓i,如果為負值,則繪製所有輪廓 thickness 繪製線寬,如果為負,則填充輪廓 hierarchy 輪廓的層次結構資訊 maxlevel 控制是否繪製當前輪廓之外的輪廓 需要有hierarc...

(26)輪廓發現

輪廓發現 區別於輪廓和邊緣的概念,輪廓也是有一定梯度層次的,有大的小的不同的輪廓 輪廓發現是基於影象邊緣提取的基礎尋找物件輪廓的方法。所以邊緣提取的閾值選定會影響最終輪廓發現結果。api介紹 findcontours發現輪廓 在灰度影象上進行輪廓發現 cv findcontours inputout...

27 輪廓發現

輪廓發現是基於影象邊緣提取的基礎,尋找物件輪廓的方法。所以邊緣提取的閾值的選定會影響最終輪廓發現的結果。include include include using namespace cv using namespace std int thresholdvlaue 100 int threshol...