现在的位置: 首页 > 综合 > 正文

初涉OpenCV

2018年02月11日 ⁄ 综合 ⁄ 共 831字 ⁄ 字号 评论关闭

float value = p_float[x]   等价于 float value = * (p_float +x)

指针法比cvGet的效率高,因为cvGet要出栈入栈。

CvMat* cvInitMatHeader(
CvMat* mat, int rows, int cols, int type,
void* data=NULL, int step=CV_AUTOSTEP );

3。memset() 函数常用于内存空间初始化。如:
char str[100];
memset(str,0,100);

4。memset()的深刻内涵:用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;例:char a[100];memset(a, '/0', sizeof(a));

5.使用cvDrawContours会破坏源图像,还要填充保留下来的轮廓。
void showArea(IplImage*src){

    CvSeq *contour = NULL;
    CvMemStorage *storage =cvCreateMemStorage(0);

    cvFindContours(src,storage,&contour,sizeof(CvContour),CV_RETR_EXTERNAL);

    for(;contour;contour=contour->h_next){
        int a =abs(cvContourArea(contour));
        printf("%d\n",a);
        if(a<=100)
        cvDrawContours(src,contour,cvScalar(0,0,0,0),cvScalar(0,0,0,0),0,CV_FILLED);
        else
        cvDrawContours(src,contour,cvScalar(255,0,0,0),cvScalar(255,0,0,0),0,CV_FILLED);
    }

}

抱歉!评论已关闭.