创建一个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 ; }