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