《学习OpenCV》练习题第三章第三题

 1 #include <highgui.h>
 2 #include <cv.h>
 3 #include <stdio.h>
 4 
 5 #pragma comment (lib,"opencv_calib3d231d.lib")
 6 #pragma comment (lib,"opencv_contrib231d.lib")
 7 #pragma comment (lib,"opencv_core231d.lib")
 8 #pragma comment (lib,"opencv_features2d231d.lib")
 9 #pragma comment (lib,"opencv_flann231d.lib")
10 #pragma comment (lib,"opencv_gpu231d.lib")
11 #pragma comment (lib,"opencv_haartraining_engined.lib")
12 #pragma comment (lib,"opencv_highgui231d.lib")
13 #pragma comment (lib,"opencv_imgproc231d.lib")
14 #pragma comment (lib,"opencv_legacy231d.lib")
15 #pragma comment (lib,"opencv_ml231d.lib")
16 #pragma comment (lib,"opencv_objdetect231d.lib")
17 #pragma comment (lib,"opencv_ts231d.lib")
18 #pragma comment (lib,"opencv_video231d.lib")
19 
20 /*
21  *《学习OpenCV》第三章第三题
22  * 完成时间:1:34 3/2 星期六 2013
23  */
24 
25 #define ROWS 400  // 矩阵行数
26 #define COLS 400  // 矩阵列数
27 
28 // 定义绿色长方形的两个顶点
29 CvPoint point1 = cvPoint(80, 20);
30 CvPoint point2 = cvPoint(160, 80);
31 
32 // Help function
33 // 检查当前点是否在要画的长方形区域内
34 bool isThePointInRectangle(int x, int y)
35 {
36     if( (x <= point2.x) && (y <= point2.y) 
37         & (x >= point1.x) && (y >= point1.y))
38         return true;
39     else 
40         return false;
41 }
42 
43 int main()
44 {
45     // 三通道的二维字节类型矩阵
46     CvMat* mat = cvCreateMat(ROWS, COLS, CV_8UC3);
47 
48     // 将所有数值初始化为零 
49     cvZero(mat);
50     // 获得矩阵元素(0,0)的指针
51     uchar *p = (uchar*)cvPtr2D(mat, 0, 0);
52     // 为矩阵赋值,画长方形
53     for(int i = 0; i < mat->cols; i++)
54     {
55         for(int j = 0; j < mat->rows; j++)
56         {
57             p = (uchar*)cvPtr2D(mat, i, j);
58             // 使其指向中间的通道
59             p++;
60             if(isThePointInRectangle(i, j) == true)
61             {
62                 *p = 255;
63             }
64             p++;
65         }
66     }
67 
68     cvShowImage("img", mat);
69     cvWaitKey(0);
70 
71     cvReleaseMat(&mat);
72     cvDestroyAllWindows(); 
73 
74     return 0;
75 }

运行结果:

 

 

posted @ 2013-04-07 19:34  qdsclove  阅读(244)  评论(0编辑  收藏  举报