OpenCV第三章练习1-4

http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=13986

http://www.opencv.org.cn/forum/viewtopic.php?f=10&t=11924&p=43041&hilit=%E5%85%8B%E9%9A%86%E5%87%BD%E6%95%B0&sid=2e3569e3374cc51cf28be59bec0cb11d#p43041

// 第一题
   float f = -15.03f;
   int j = cvRound(f);        // 四舍五入
   CvRNG rng= cvRNG(-1);    // 产生随机数
   unsigned int k = cvRandInt(&rng);    // 转换为32位整数
   CvPoint2D32f p32 = cvPoint2D32f(15.2,16.3);        // 创建CvPoint2D32f
   CvPoint p=cvPointFrom32f(p32);    // CvPoint2D32f转为CvPoint
   p32 = cvPointTo32f(p);            // CvPoint转为CvPoint2D32f
// 第二题
   CvMat *m = cvCreateMat(100,100,CV_8UC3);
    uchar* pt=0,*ptr;
    cvSetZero(m);
    cvCircle(m,cvPoint(50,50), 20, cvRealScalar(0xff), 1, 8, 0);
// 第四题
    CvMat *m = cvCreateMat(100,100,CV_8UC3);
     uchar* pt=0,*ptr;
     cvSetZero(m);
     pt = cvPtr2D(m,20,5,NULL)+1;
     ptr = pt;
     for(j = 0 ; j < 20 ; j++){
          *ptr = 255;
          ptr += 3;
     }
     for(j=0;j<15;j++){
          *ptr = 255;
          ptr += m->step;
      }
      for(j=0;j<20;j++){
         *ptr = 255;
          ptr -= 3;
      }
        for(j=0;j<15;j++){
         *ptr = 255;
          ptr -= m->step;
      }
// 第四题
    pt = (uchar*)m->data.ptr+m->step*20+3*5+1;
    for(j=0;j<15;j++){
        ptr = pt +m->step*j;
        for(i=0;i<20;i++){
            *ptr = 255;
            ptr += 3;
        }
    }
// 第四题,这个是根据第三题修改的
    int j;
    CvMat *m = cvCreateMat(100,100,CV_8UC3);
    uchar* ptr = 0,*ptr2 = 0;
    cvSetZero(m);
    ptr = cvPtr2D(m,20,5,NULL)+1;
    ptr2 = cvPtr2D(m,40,20,NULL)+1;
    for(;ptr<=ptr2;ptr+=m->step)
        for(j=0;j<=20;j++)
            (*(ptr+(3*j)))=255;

 

posted on 2013-03-20 23:20  suwen  阅读(198)  评论(0编辑  收藏  举报

导航