题目:
创建一个大小为400*400的三通道的RGB图像。将它的全部元素置0.使用指针算法将以(100,100)与(300,300)为项点绘制一个绿色的矩形。
#include<cv.h>
#include<highgui.h>
int main()
{
IplImage*img=cvCreateImage(cvSize(400,400),IPL_DEPTH_8U,3);
//设置所有元素为0
for(int y=0;y<img->height;y++)
{
uchar*ptr=(uchar*)(img->imageData+y*img->widthStep);//指针指向当前行
for(int x=0;x<img->width;x++)
{
ptr[3*x]=0;//相应位置的R值
ptr[3*x+1]=0;//相应位置的G值
ptr[3*x+2]=0;//相应位置的B值
}
}
//设置矩阵为绿色
for(int y=100;y<300;y++)
{
uchar*ptr=(uchar*)(img->imageData+y*img->widthStep);
for(int x=100;x<300;x++)
{
ptr[3*x]=0;//相应位置的R值
ptr[3*x+1]=255;//相应位置的G值
ptr[3*x+2]=0;//相应位置的B值
}
}
cvNamedWindow("goushi",1);
cvShowImage("goushi",img);
cvWaitKey();
return 0;
}