From 22e59e933beebc56ac455d197a0c0f9154888e1a Mon Sep 17 00:00:00 2001 From: Ana Huaman Date: Tue, 21 Jun 2011 23:50:02 +0000 Subject: [PATCH] Added Threshold.cpp in samples/cpp/tutorial_code/ImgProc --- .../cpp/tutorial_code/ImgProc/Threshold.cpp | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 samples/cpp/tutorial_code/ImgProc/Threshold.cpp diff --git a/samples/cpp/tutorial_code/ImgProc/Threshold.cpp b/samples/cpp/tutorial_code/ImgProc/Threshold.cpp new file mode 100644 index 000000000..c224ee5d5 --- /dev/null +++ b/samples/cpp/tutorial_code/ImgProc/Threshold.cpp @@ -0,0 +1,84 @@ +/** + * @file Threshold.cpp + * @brief Sample code that shows how to use the diverse threshold options offered by OpenCV + * @author OpenCV team + */ + +#include "opencv2/imgproc/imgproc.hpp" +#include "opencv2/highgui/highgui.hpp" +#include +#include + +using namespace cv; + +/// 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; +char* window_name = "Threshold Demo"; + +char* trackbar_type = "Type: \n 0: Binary \n 1: Binary Inverted \n 2: Truncate \n 3: To Zero \n 4: To Zero Inverted"; +char* trackbar_value = "Value"; + +/// Function headers +void Threshold_Demo( int, void* ); + +/** + * @function main + */ +int main( int argc, char** argv ) +{ + /// Load an image + src = imread( argv[1], 1 ); + + /// Convert the image to Gray + cvtColor( src, src_gray, CV_RGB2GRAY ); + + /// Create a window to display results + namedWindow( window_name, CV_WINDOW_AUTOSIZE ); + + /// Create Trackbar to choose type of Threshold + createTrackbar( trackbar_type, + window_name, &threshold_type, + max_type, Threshold_Demo ); + + createTrackbar( trackbar_value, + window_name, &threshold_value, + max_value, Threshold_Demo ); + + /// Call the function to initialize + Threshold_Demo( 0, 0 ); + + /// Wait until user finishes program + while(true) + { + int c; + c = waitKey( 20 ); + if( (char)c == 27 ) + { break; } + } + +} + + +/** + * @function Threshold_Demo + */ +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 ); +}