久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

opencv輪廓的簡(jiǎn)單應(yīng)用

 instl 2013-12-29

opencv輪廓的簡(jiǎn)單應(yīng)用

分類: Opencv OpenCV函數(shù) 3666人閱讀 評(píng)論(2) 收藏 舉報(bào)

typedef struct CvSeq
{
    CV_SEQUENCE_FIELDS()
}
CvSeq;

#define CV_CONTOUR_FIELDS()  \
    CV_SEQUENCE_FIELDS()     \
    CvRect rect;             \
    int color;               \
    int reserved[3];

typedef struct CvContour
{
    CV_CONTOUR_FIELDS()
}
CvContour;

 

則:CvContour比CvSeq多了如下三個(gè)參數(shù)

CvRect rect;             \連通區(qū)域的外接矩形

int color;               \

int reserved[3];

 

opencv輪廓的簡(jiǎn)單應(yīng)用:
相關(guān)函數(shù)如下:
cvFindContours,,cvThreshold,cvContourArea,,cvArcLength,,cvBoundingRect,,cvMinAreaRect2,cvBoxPoints,,cvMinEnclosingCircle,,cvDrawContours。
1.查找輪廓
2.按地址依次取出輪廓
3.計(jì)算輪廓的相關(guān)參數(shù)
4,、根據(jù)實(shí)際需求做取舍,,畫出輪廓

1.cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq** first_contour,
                            int header_size CV_DEFAULT(sizeof(CvContour)),
                            int mode CV_DEFAULT(CV_RETR_LIST),
                            int method CV_DEFAULT(CV_CHAIN_APPROX_SIMPLE),
                            CvPoint offset CV_DEFAULT(cvPoint(0,0)));
查找輪廓,返回查找到輪廓總數(shù),使用該函數(shù)時(shí)輸入圖像會(huì)被直接涂改,,如果是還有用的圖像,,應(yīng)復(fù)制后,傳遞圖像副本,,使用該函數(shù)前應(yīng)先將圖像轉(zhuǎn)化為二值化圖像,,可使用下面的函數(shù)
cvThreshold( const CvArr*  src, CvArr*  dst,
                          double  threshold, double  max_value,
                          int threshold_type );

2.for (CvSeq *c = first_contour;c !=NULL;c = c->h_next) {}

3.double cvContourArea( const CvArr* contour, CvSlice slice=CV_WHOLE_SEQ );

contour:輪廓(頂點(diǎn)的序列或數(shù)組)。
slice:感興趣區(qū)輪廓部分的起點(diǎn)和終點(diǎn),,默認(rèn)計(jì)算整個(gè)輪廓的面積,。
函數(shù)cvContourArea計(jì)算整個(gè)或部分輪廓的面積。在計(jì)算部分輪廓的情況時(shí),,由輪廓弧線和連接兩端點(diǎn)的弦
圍成的區(qū)域總面積被計(jì)算,,如下圖所示:
contoursecarea.png 

注意:輪廓的位置將影響區(qū)域面積的符號(hào),因此函數(shù)范圍的有可能是負(fù)值,??梢允褂肅運(yùn)行時(shí)函數(shù)fabs()來(lái)

得到面積的絕對(duì)值。


cvArcLength( const void* curve,
                            CvSlice slice CV_DEFAULT(CV_WHOLE_SEQ),
                            int is_closed CV_DEFAULT(-1));


計(jì)算輪廓長(zhǎng)度,。

cvBoundingRect( CvArr* points, int update CV_DEFAULT(0) );

計(jì)算輪廓的最小正外接矩形,,返回 CvRect,矩形邊界與圖形邊界平行

cvMinAreaRect2( const CvArr* points,
                                CvMemStorage* storage CV_DEFAULT(NULL));

計(jì)算輪廓的最小外接矩形,,返回 CvBox2D,矩形邊界可能與邊界有一點(diǎn)角度,,可通過(guò)

cvBoxPoints( CvBox2D box, CvPoint2D32f pt[4] );獲取矩形的4個(gè)頂點(diǎn),,再依次連接頂點(diǎn)即可。

cvMinEnclosingCircle( const CvArr* points,
                                  CvPoint2D32f* center, float* radius );

計(jì)算輪廓的最小外接圓,。


4.cvDrawContours( CvArr *img, CvSeq* contour,
                            CvScalar external_color, CvScalar hole_color,
                            int max_level, int thickness CV_DEFAULT(1),
                            int line_type CV_DEFAULT(8),
                            CvPoint offset CV_DEFAULT(cvPoint(0,0)));

畫出輪廓,。

cvRectangle( CvArr* img, CvPoint pt1, CvPoint pt2,
                          CvScalar color, int thickness CV_DEFAULT(1),
                          int line_type CV_DEFAULT(8),
                          int shift CV_DEFAULT(0));
畫出矩形。

如:cvRectangle(contourimage,cvPoint(testrect.x,testrect.y+testrect.height),cvPoint(testrect.x+testrect.width,testrect.y),cvScalar(0,0,0),2);

cvCircle( CvArr* img, CvPoint center, int radius,
                       CvScalar color, int thickness CV_DEFAULT(1),
                       int line_type CV_DEFAULT(8), int shift CV_DEFAULT(0));
畫圓,。

cvLine( CvArr* img, CvPoint pt1, CvPoint pt2,
                     CvScalar color, int thickness CV_DEFAULT(1),
                     int line_type CV_DEFAULT(8), int shift CV_DEFAULT(0) );
畫線,。


最后結(jié)果如下圖:




測(cè)試圖像以及完整代碼下載:http://download.csdn.net/detail/z397164725/4055802


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多