OpenCV之ROI的使用

创建一个210*210的单通道图像并将其归0.在图像中使用ROI和cvSet()建立一个增长如金字塔状的数组。也就是,外部边界为0,下一个内部边界为20,再下一个内部边界为20,再下一个内部边界为40,以此类推,直到最后内部值为200,所有的边界应该为10像素的宽度。最后显示这个图形。

#include "cv.h"

#include "highgui.h"



int main(int argc, char** argv)

{

    IplImage *img;

    img = cvCreateImage(cvSize(210,210),IPL_DEPTH_8U,1);

    cvZero(img);



    int interset_x = 0;

    int interset_y = 0;

    int offset_x = img->width;

    int offset_y = img->height;

    int add = 0;

    bool condition = true;



    while(add<200)

    {

        cvSetImageROI(img,cvRect(interset_x,interset_y,offset_x,offset_y));

        

        if (condition){

            cvSet(img,cvScalar(0));

            condition = FALSE;

        }

        else{

            cvSet(img,cvScalar(add));

            condition = TRUE;

        }  



        cvResetImageROI(img);



        add = add+20;

        interset_x = interset_x +10;

        interset_y = interset_y +10;

        offset_x = offset_x -20;

        offset_y = offset_y -20;

    }



    cvNamedWindow( "OpenCVTest4", CV_WINDOW_AUTOSIZE );

    cvShowImage( "OpenCVTest4", img );

    cvWaitKey();

    cvDestroyWindow("OpenCVTest4");

    cvReleaseImage(&img);

    return 0;

}

 

你可能感兴趣的:(opencv)