Blame view

3rdparty/opencv-4.5.4/samples/cpp/tutorial_code/ImgProc/Threshold.cpp 2.17 KB
f4334277   Hu Chunming   提交3rdparty
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
  /**
   * @file Threshold.cpp
   * @brief Sample code that shows how to use the diverse threshold options offered by OpenCV
   * @author OpenCV team
   */
  
  #include "opencv2/imgproc.hpp"
  #include "opencv2/imgcodecs.hpp"
  #include "opencv2/highgui.hpp"
  #include <iostream>
  
  using namespace cv;
  using std::cout;
  
  /// Global variables
  
  int threshold_value = 0;
  int threshold_type = 3;
  int const max_value = 255;
  int const max_type = 4;
  int const max_binary_value = 255;
  
  Mat src, src_gray, dst;
  const char* window_name = "Threshold Demo";
  
  const char* trackbar_type = "Type: \n 0: Binary \n 1: Binary Inverted \n 2: Truncate \n 3: To Zero \n 4: To Zero Inverted";
  const char* trackbar_value = "Value";
  
  //![Threshold_Demo]
  /**
   * @function Threshold_Demo
   */
  static void Threshold_Demo( int, void* )
  {
      /* 0: Binary
       1: Binary Inverted
       2: Threshold Truncated
       3: Threshold to Zero
       4: Threshold to Zero Inverted
      */
      threshold( src_gray, dst, threshold_value, max_binary_value, threshold_type );
      imshow( window_name, dst );
  }
  //![Threshold_Demo]
  
  /**
   * @function main
   */
  int main( int argc, char** argv )
  {
      //! [load]
      String imageName("stuff.jpg"); // by default
      if (argc > 1)
      {
          imageName = argv[1];
      }
      src = imread( samples::findFile( imageName ), IMREAD_COLOR ); // Load an image
  
      if (src.empty())
      {
          cout << "Cannot read the image: " << imageName << std::endl;
          return -1;
      }
  
      cvtColor( src, src_gray, COLOR_BGR2GRAY ); // Convert the image to Gray
      //! [load]
  
      //! [window]
      namedWindow( window_name, WINDOW_AUTOSIZE ); // Create a window to display results
      //! [window]
  
      //! [trackbar]
      createTrackbar( trackbar_type,
                      window_name, &threshold_type,
                      max_type, Threshold_Demo ); // Create a Trackbar to choose type of Threshold
  
      createTrackbar( trackbar_value,
                      window_name, &threshold_value,
                      max_value, Threshold_Demo ); // Create a Trackbar to choose Threshold value
      //! [trackbar]
  
      Threshold_Demo( 0, 0 ); // Call the function to initialize
  
      /// Wait until the user finishes the program
      waitKey();
      return 0;
  }