opencv截取特定區(qū)域 opencv代碼詳解(探測(cè)紅色圓形并標(biāo)注)?
opencv代碼詳解(探測(cè)紅色圓形并標(biāo)注)?Cvcapture//從攝像機(jī)獲取視頻如果(!Capture)//如果采集失敗fprintf//輸出錯(cuò)誤消息getchar()//獲取輸入字符return-
opencv代碼詳解(探測(cè)紅色圓形并標(biāo)注)?
Cvcapture//從攝像機(jī)獲取視頻
如果(!Capture)//如果采集失敗
fprintf//輸出錯(cuò)誤消息
getchar()//獲取輸入字符
return-1//return-1
cvnamedwindow//命名一個(gè)窗口,原始大小
cvscalar//定義兩個(gè)組
iplimage//創(chuàng)建兩個(gè)新圖像,大小為640*480,一個(gè)3通道顏色和一個(gè)灰度
同時(shí)(1)//Loop
iplimage*frame//獲取攝像機(jī)的一幀
如果條件語句如上
cvcvtcolor cvu|bgr2hsv獲取的圖像從BGR模式轉(zhuǎn)換為HSV顏色模式
cvinranges檢測(cè)轉(zhuǎn)換后的HSV圖像的灰度是否在兩個(gè)數(shù)組的定義范圍內(nèi)
如何用opencv實(shí)現(xiàn)任意聯(lián)通區(qū)域的最大內(nèi)接圓?
我想您可以使用用OpenCV的Hough圓變換來實(shí)現(xiàn)。當(dāng)然,您也可以使用cvfiteclispe函數(shù)來返回橢圓的中心坐標(biāo)以及長(zhǎng)軸和短軸。半徑可以通過擬合得到。代碼可以如下:cvbox2d BOD=cvfitellipse2(ptset)ptset是一個(gè)點(diǎn)集
可以使用cvsetimageroi函數(shù)。例如:cvrect ROIurect//基于給定矩形設(shè)置ROIurect.x=125roiurect.y=300roiu矩形寬度=240roiU矩形高度=200cvSetImageROI(src,roiurect)//src,原始圖像
如果鼠標(biāo)選擇的跟蹤區(qū)域大小不變,可以考慮meanshift(cvmeanshift)。如果跟蹤區(qū)域被放大或縮小,您可以看到CAMSHIFT(cvcamshift)。也可以選擇其他特征進(jìn)行對(duì)象跟蹤。著名的一個(gè)是cv跟蹤功能好
理論上,這個(gè)功能是無法實(shí)現(xiàn)的。等高線到圓是通過數(shù)據(jù)擬合得到的圓。只有給定圓擬合的標(biāo)準(zhǔn)邊界,才能實(shí)現(xiàn)這一功能。