《学习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 }

运行结果:

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

 

 

你可能感兴趣的:(opencv)