diff --git a/samples/cpp/tutorial_code/Basic/AddingImages.cpp b/samples/cpp/tutorial_code/Basic/AddingImages.cpp index a1cbc6047a..af2edf0bc6 100644 --- a/samples/cpp/tutorial_code/Basic/AddingImages.cpp +++ b/samples/cpp/tutorial_code/Basic/AddingImages.cpp @@ -32,8 +32,8 @@ int main( int argc, char** argv ) { alpha = input; } /// Read image ( same size, same type ) - src1 = imread("../../images/LinuxLogo.jpg"); - src2 = imread("../../images/WindowsLogo.jpg"); + src1 = imread("../images/LinuxLogo.jpg"); + src2 = imread("../images/WindowsLogo.jpg"); if( !src1.data ) { printf("Error loading src1 \n"); return -1; } if( !src2.data ) { printf("Error loading src2 \n"); return -1; } diff --git a/samples/cpp/tutorial_code/Basic/AddingImagesTrackbar.cpp b/samples/cpp/tutorial_code/Basic/AddingImagesTrackbar.cpp index 191eb9b219..047474ad01 100644 --- a/samples/cpp/tutorial_code/Basic/AddingImagesTrackbar.cpp +++ b/samples/cpp/tutorial_code/Basic/AddingImagesTrackbar.cpp @@ -43,8 +43,8 @@ void on_trackbar( int, void* ) int main( int argc, char** argv ) { /// Read image ( same size, same type ) - src1 = imread("../../images/LinuxLogo.jpg"); - src2 = imread("../../images/WindowsLogo.jpg"); + src1 = imread("../images/LinuxLogo.jpg"); + src2 = imread("../images/WindowsLogo.jpg"); if( !src1.data ) { printf("Error loading src1 \n"); return -1; } if( !src2.data ) { printf("Error loading src2 \n"); return -1; } diff --git a/samples/cpp/tutorial_code/Basic/LoadSaveImage.cpp b/samples/cpp/tutorial_code/Basic/LoadSaveImage.cpp index 80b94c9a6f..69db8e3e98 100644 --- a/samples/cpp/tutorial_code/Basic/LoadSaveImage.cpp +++ b/samples/cpp/tutorial_code/Basic/LoadSaveImage.cpp @@ -36,7 +36,7 @@ int main( int argc, char** argv ) cvtColor( image, gray_image, CV_RGB2GRAY ); /// Save our gray image - imwrite( "../../images/Gray_Image.png", gray_image ); + imwrite( "../images/Gray_Image.png", gray_image ); /// Create a couple of windows and show our images namedWindow( imageName, CV_WINDOW_AUTOSIZE ); diff --git a/samples/cpp/tutorial_code/Image_Processing/FilterDemo1.cpp b/samples/cpp/tutorial_code/Image_Processing/FilterDemo1.cpp new file mode 100644 index 0000000000..b7e1ab80ad --- /dev/null +++ b/samples/cpp/tutorial_code/Image_Processing/FilterDemo1.cpp @@ -0,0 +1,109 @@ +/** + * file FilterDemo1.cpp + * brief Sample code for simple filters + * author OpenCV team + */ +#include +#include + +#include "opencv2/imgproc/imgproc.hpp" +#include "opencv2/highgui/highgui.hpp" +#include "opencv2/features2d/features2d.hpp" + +using namespace std; +using namespace cv; + +/// Global Variables +int DELAY_CAPTION = 1500; +int DELAY_BLUR = 100; +int MAX_KERNEL_LENGTH = 31; + +Mat src; Mat dst; +char window_name[] = "Filter Demo 1"; + +/// Function headers +int display_caption( char* caption ); +int display_dst( int delay ); + + +/** + * function main + */ +int main( int argc, char** argv ) +{ + namedWindow( window_name, CV_WINDOW_AUTOSIZE ); + + /// Load the source image + src = imread( "../images/lena.png", 1 ); + + if( display_caption( "Original Image" ) != 0 ) { return 0; } + + dst = src.clone(); + if( display_dst( DELAY_CAPTION ) != 0 ) { return 0; } + + + /// Applying Homogeneous blur + if( display_caption( "Homogeneous Blur" ) != 0 ) { return 0; } + + for ( int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2 ) + { blur( src, dst, Size( i, i ), Point(-1,-1) ); + if( display_dst( DELAY_BLUR ) != 0 ) { return 0; } } + + + /// Applying Gaussian blur + if( display_caption( "Gaussian Blur" ) != 0 ) { return 0; } + + for ( int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2 ) + { GaussianBlur( src, dst, Size( i, i ), 0, 0 ); + if( display_dst( DELAY_BLUR ) != 0 ) { return 0; } } + + + /// Applying Median blur + if( display_caption( "Median Blur" ) != 0 ) { return 0; } + + for ( int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2 ) + { medianBlur ( src, dst, i ); + if( display_dst( DELAY_BLUR ) != 0 ) { return 0; } } + + + /// Applying Bilateral Filter + if( display_caption( "Bilateral Blur" ) != 0 ) { return 0; } + + for ( int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2 ) + { bilateralFilter ( src, dst, i, i*2, i/2 ); + if( display_dst( DELAY_BLUR ) != 0 ) { return 0; } } + + /// Wait until user press a key + display_caption( "End: Press a key!" ); + + waitKey(0); + + return 0; +} + +/** + * @function display_caption + */ +int display_caption( char* caption ) +{ + dst = Mat::zeros( src.size(), src.type() ); + putText( dst, caption, + Point( src.cols/4, src.rows/2), + CV_FONT_HERSHEY_COMPLEX, 1, Scalar(255, 255, 255) ); + + imshow( window_name, dst ); + int c = waitKey( DELAY_CAPTION ); + if( c >= 0 ) { return -1; } + return 0; +} + +/** + * @function display_dst + */ +int display_dst( int delay ) +{ + imshow( window_name, dst ); + int c = waitKey ( delay ); + if( c >= 0 ) { return -1; } + return 0; +} diff --git a/samples/cpp/tutorial_code/images/HappyFish.jpg b/samples/cpp/tutorial_code/images/HappyFish.jpg new file mode 100755 index 0000000000..c76288edbf Binary files /dev/null and b/samples/cpp/tutorial_code/images/HappyFish.jpg differ diff --git a/samples/cpp/tutorial_code/images/LinuxLogo.jpg b/samples/cpp/tutorial_code/images/LinuxLogo.jpg new file mode 100755 index 0000000000..34cba88641 Binary files /dev/null and b/samples/cpp/tutorial_code/images/LinuxLogo.jpg differ diff --git a/samples/cpp/tutorial_code/images/WindowsLogo.jpg b/samples/cpp/tutorial_code/images/WindowsLogo.jpg new file mode 100755 index 0000000000..04be449233 Binary files /dev/null and b/samples/cpp/tutorial_code/images/WindowsLogo.jpg differ diff --git a/samples/cpp/tutorial_code/images/cat.jpg b/samples/cpp/tutorial_code/images/cat.jpg new file mode 100755 index 0000000000..df4a907e5f Binary files /dev/null and b/samples/cpp/tutorial_code/images/cat.jpg differ diff --git a/samples/cpp/tutorial_code/images/lena.png b/samples/cpp/tutorial_code/images/lena.png new file mode 100644 index 0000000000..59ef68aabd Binary files /dev/null and b/samples/cpp/tutorial_code/images/lena.png differ