创建一个大小为400*400的三通道的RGB图像。将它的全部元素置0.使用指针算法将以(100,100)与(300,300)为项点绘制一个绿色的矩形。

来源:互联网 发布:淘宝云客服平台 编辑:程序博客网 时间:2024/06/06 03:34

题目:

      创建一个大小为400*400的三通道的RGB图像。将它的全部元素置0.使用指针算法将以(100,100)与(300,300)为项点绘制一个绿色的矩形。

[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. #include<cv.h>  
  2. #include<highgui.h>  
  3.   
  4. int main()  
  5. {  
  6.     IplImage*img=cvCreateImage(cvSize(400,400),IPL_DEPTH_8U,3);  
  7.     //设置所有元素为0  
  8.     for(int y=0;y<img->height;y++)  
  9.     {  
  10.         uchar*ptr=(uchar*)(img->imageData+y*img->widthStep);//指针指向当前行  
  11.         for(int x=0;x<img->width;x++)  
  12.         {  
  13.             ptr[3*x]=0;//相应位置的R值  
  14.             ptr[3*x+1]=0;//相应位置的G值  
  15.             ptr[3*x+2]=0;//相应位置的B值  
  16.         }  
  17.     }  
  18.     //设置矩阵为绿色  
  19.     for(int y=100;y<300;y++)  
  20.     {  
  21.         uchar*ptr=(uchar*)(img->imageData+y*img->widthStep);  
  22.         for(int x=100;x<300;x++)  
  23.         {  
  24.             ptr[3*x]=0;//相应位置的R值  
  25.             ptr[3*x+1]=255;//相应位置的G值  
  26.             ptr[3*x+2]=0;//相应位置的B值  
  27.         }  
  28.     }  
  29.     cvNamedWindow("goushi",1);  
  30.     cvShowImage("goushi",img);  
  31.     cvWaitKey();  
  32.     return 0;  
  33. }  



0 0