1. #include "stdafx.h"
    2. #include <cv.h>
    3. #include <highgui.h>
    4. #include <iostream>
    5. #include <opencv2/legacy/legacy.hpp>
    6. //#pragma comment(lib, "opencv_legacy2411.lib")
    7. using namespace cv;
    8. using namespace std;
    9. //函数声明-->--->-->--->-->--->-->--->//
    10. //<--<--<--<--<--<--<--<--<--函数声明//
    11. int _tmain(int argc, _TCHAR* argv[])
    12. {
    13. const char * soutceFile = "D:\\Work\\Work_Programming\\Source\\Image\\OpenCVExerciseImage\\第6章\\建筑.jpg";
    14. IplImage * image_Resource = cvLoadImage(soutceFile, CV_LOAD_IMAGE_GRAYSCALE);
    15. assert(image_Resource);
    16. cvNamedWindow("原始图像", CV_WINDOW_NORMAL);
    17. cvNamedWindow("题目_a_1", CV_WINDOW_NORMAL);
    18. cvNamedWindow("题目_a_2", CV_WINDOW_NORMAL);
    19. cvNamedWindow("题目_a_3", CV_WINDOW_NORMAL);
    20. cvNamedWindow("题目_b_1", CV_WINDOW_NORMAL);
    21. cvNamedWindow("题目_b_2", CV_WINDOW_NORMAL);
    22. cvNamedWindow("题目_b_3", CV_WINDOW_NORMAL);
    23. cvNamedWindow("题目_c_1", CV_WINDOW_NORMAL);
    24. cvNamedWindow("题目_c_2", CV_WINDOW_NORMAL);
    25. cvNamedWindow("题目_c_3", CV_WINDOW_NORMAL);
    26. //cvNamedWindow("题目_d_1", CV_WINDOW_NORMAL);
    27. //cvNamedWindow("题目_d_2", CV_WINDOW_NORMAL);
    28. //cvNamedWindow("题目_d_3", CV_WINDOW_NORMAL);
    29. cvNamedWindow("题目_e_1", CV_WINDOW_NORMAL);
    30. cvNamedWindow("题目_e_2", CV_WINDOW_NORMAL);
    31. cvNamedWindow("题目_e_3", CV_WINDOW_NORMAL);
    32. cvShowImage("原始图像", image_Resource);
    33. //---------------------------a:开始--------------------------------//
    34. IplImage * image_Result_a = cvCloneImage(image_Resource);
    35. cvZero(image_Result_a);
    36. double highThresh = 10;
    37. double lowThresh = highThresh / 1.5;
    38. cvCanny(image_Resource, image_Result_a, highThresh, lowThresh, 3);
    39. cvShowImage("题目_a_1", image_Result_a);
    40. lowThresh = highThresh / 2.75;
    41. cvZero(image_Result_a);
    42. cvCanny(image_Resource, image_Result_a, highThresh, lowThresh, 3);
    43. cvShowImage("题目_a_2", image_Result_a);
    44. lowThresh = highThresh / 4.0;
    45. cvZero(image_Result_a);
    46. cvCanny(image_Resource, image_Result_a, highThresh, lowThresh, 3);
    47. cvShowImage("题目_a_3", image_Result_a);
    48. //---------------------------a:结束--------------------------------//
    49. //---------------------------b:开始--------------------------------//
    50. IplImage * image_Result_b = cvCloneImage(image_Resource);
    51. cvZero(image_Result_b);
    52. highThresh = 80;
    53. lowThresh = highThresh / 1.5;
    54. cvCanny(image_Resource, image_Result_b, highThresh, lowThresh, 3);
    55. cvShowImage("题目_b_1", image_Result_b);
    56. lowThresh = highThresh / 2.75;
    57. cvZero(image_Result_b);
    58. cvCanny(image_Resource, image_Result_b, highThresh, lowThresh, 3);
    59. cvShowImage("题目_b_2", image_Result_b);
    60. lowThresh = highThresh / 4.0;
    61. cvZero(image_Result_b);
    62. cvCanny(image_Resource, image_Result_b, highThresh, lowThresh, 3);
    63. cvShowImage("题目_b_3", image_Result_b);
    64. //---------------------------b:结束--------------------------------//
    65. //---------------------------c:开始--------------------------------//
    66. IplImage * image_Result_c = cvCloneImage(image_Resource);
    67. cvZero(image_Result_c);
    68. highThresh = 130;
    69. lowThresh = highThresh / 1.5;
    70. cvCanny(image_Resource, image_Result_c, highThresh, lowThresh, 3);
    71. cvShowImage("题目_c_1", image_Result_c);
    72. lowThresh = highThresh / 2.75;
    73. cvZero(image_Result_c);
    74. cvCanny(image_Resource, image_Result_c, highThresh, lowThresh, 3);
    75. cvShowImage("题目_c_2", image_Result_c);
    76. lowThresh = highThresh / 4.0;
    77. cvZero(image_Result_c);
    78. cvCanny(image_Resource, image_Result_c, highThresh, lowThresh, 3);
    79. cvShowImage("题目_c_3", image_Result_c);
    80. //---------------------------c:结束--------------------------------//
    81. //---------------------------e:开始--------------------------------//
    82. IplImage * image_Result_e = cvCloneImage(image_Resource);
    83. cvZero(image_Result_e);
    84. highThresh = 245;
    85. lowThresh = highThresh / 1.5;
    86. cvCanny(image_Resource, image_Result_e, highThresh, lowThresh, 3);
    87. cvShowImage("题目_e_1", image_Result_e);
    88. lowThresh = highThresh / 2.75;
    89. cvZero(image_Result_e);
    90. cvCanny(image_Resource, image_Result_e, highThresh, lowThresh, 3);
    91. cvShowImage("题目_e_2", image_Result_e);
    92. lowThresh = highThresh / 4.0;
    93. cvZero(image_Result_e);
    94. cvCanny(image_Resource, image_Result_e, highThresh, lowThresh, 3);
    95. cvShowImage("题目_e_3", image_Result_e);
    96. //---------------------------e:结束--------------------------------//
    97. cvWaitKey(0);
    98. cvReleaseImage(&image_Resource);
    99. cvReleaseImage(&image_Result_a);
    100. cvReleaseImage(&image_Result_b);
    101. cvReleaseImage(&image_Result_c);
    102. cvReleaseImage(&image_Result_e);
    103. cvDestroyAllWindows();
    104. return 0;
    105. }

    image.png
    image.png
    image.png
    image.png
    ——————————————————————————————->>越少细节 横线写错了