OpenCV第三章练习1-4
http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=13986
// 第一题 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;