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

