This post series is the Solutions of the Learning OpenCV 3 written by Adrian Kaehler & Gary Bradski
Chapter 2: Introduction OpenCV
For this chapter, I prepare Cmake file to build the example code
1 2 3 4 5 6 7 8 |
cmake_minimum_required(VERSION 2.8) project( Chapter2 ) find_package( OpenCV REQUIRED ) include_directories( ${OpenCV_INCLUDE_DIRS} ) add_executable( Ex3 Ex3.cpp ) target_link_libraries( Ex3 ${OpenCV_LIBS} ) add_executable( Ex4 Ex4.cpp ) target_link_libraries( Ex4 ${OpenCV_LIBS} ) |
Example 3
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 |
#include <opencv2/opencv.hpp> #include <iostream> #include <stdlib.h> int main( int argc, char* argv[] ) { cv::namedWindow( "Example3", cv::WINDOW_AUTOSIZE ); cv::namedWindow( "Log_Polar", cv::WINDOW_AUTOSIZE ); // ( Note: could capture from a camera by giving a camera id as an int.) // cv::VideoCapture capture(0); double fps = capture.get( cv::CAP_PROP_FPS ); cv::Size size( (int)capture.get( cv::CAP_PROP_FRAME_WIDTH ), (int)capture.get( cv::CAP_PROP_FRAME_HEIGHT ) ); cv::VideoWriter writer; writer.open( "test.avi", CV_FOURCC('M','J','P','G'), fps, size ); cv::Mat logpolar_frame, bgr_frame,img1,img2; for(;;) { capture >> bgr_frame; if( bgr_frame.empty() ) break; // end if done img1 = bgr_frame; img2 = img1; cv::imshow( "Example2_11", bgr_frame ); cv::logPolar( bgr_frame, // Input color frame logpolar_frame, // Output log-polar frame cv::Point2f( // Centerpoint for log-polar transformation bgr_frame.cols/2, // x bgr_frame.rows/2 // y ), 40, // Magnitude (scale parameter) cv::WARP_FILL_OUTLIERS // Fill outliers with 'zero' ); cv::imshow( "Log_Polar", logpolar_frame ); cv::pyrDown( img2, img1); writer << img2; char c = cv::waitKey(10); if( c == 27 ) break; // allow the user to break out } capture.release(); } |
Example 4
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 |
#include <opencv2/opencv.hpp> #include <iostream> #include <stdlib.h> int main( int argc, char* argv[] ) { cv::namedWindow( "Example4", cv::WINDOW_AUTOSIZE ); cv::namedWindow( "Log_Polar", cv::WINDOW_AUTOSIZE ); // ( Note: could capture from a camera by giving a camera id as an int.) // cv::VideoCapture capture(0); double fps = capture.get( cv::CAP_PROP_FPS ); cv::Size size( (int)capture.get( cv::CAP_PROP_FRAME_WIDTH ), (int)capture.get( cv::CAP_PROP_FRAME_HEIGHT ) ); cv::VideoWriter writer; writer.open( "test.avi", CV_FOURCC('M','J','P','G'), fps, size ); cv::Mat logpolar_frame, bgr_frame,img1,img2; for(;;) { capture >> bgr_frame; if( bgr_frame.empty() ) break; // end if done img1 = bgr_frame; img2 = img1; cv::imshow( "Example4", bgr_frame ); cv::logPolar( bgr_frame, // Input color frame logpolar_frame, // Output log-polar frame cv::Point2f( // Centerpoint for log-polar transformation bgr_frame.cols/2, // x bgr_frame.rows/2 // y ), 40, // Magnitude (scale parameter) cv::WARP_FILL_OUTLIERS // Fill outliers with 'zero' ); cv::imshow( "Log_Polar", logpolar_frame ); cv::pyrDown( img2, img1); writer << img2; char c = cv::waitKey(0); cv::destroyWindow("Example4"); cv::destroyWindow("Log_Polar"); if( c == 27 ) break; // allow the user to break out } capture.release(); } |