OpenCV Example
读取图片
Example 2-1
1 #include "opencv2/opencv.hpp" 2 3 int main(void) { 4 cv::Mat img = cv::imread("wang.jpg"); 5 cv::namedWindow("Example 2-1", cv::WINDOW_AUTOSIZE); 6 cv::imshow("Example 2-1", img); 7 cv::waitKey(0); 8 cv::destroyWindow("Example 2-1"); 9 return 0; 10 }

Example 2-2
1 #include "opencv2/highgui/highgui.hpp" 2 3 int main(void) { 4 cv::Mat img = cv::imread("wang.jpg"); 5 if (img.empty()) return -1; 6 cv::namedWindow("Example 2-2", cv::WINDOW_AUTOSIZE); 7 cv::imshow("Example 2-2", img); 8 cv::waitKey(0); 9 cv::destroyWindow("Example 2-2"); 10 return 0; 11 }

读取视频
Example 2-3
1 #include "opencv2/highgui/highgui.hpp" 2 #include "opencv2/imgproc/imgproc.hpp" 3 4 int main(void) { 5 cv::namedWindow("Example 2-3", cv::WINDOW_AUTOSIZE); 6 cv::VideoCapture cap; 7 cap.open("test.mp4"); 8 9 cv::Mat frame; 10 while (1) { 11 cap >> frame; 12 if (frame.empty()) break; 13 cv::imshow("Example 2-3", frame); 14 if ((char)cv::waitKey(33) >= 0) break; 15 } 16 return 0; 17 }
Example 2-4
1 #include "opencv2/highgui/highgui.hpp" 2 #include "opencv2/imgproc/imgproc.hpp" 3 #include <iostream> 4 5 int g_slider_position = 0; 6 int g_run = 1, g_dontest = 0; // start out in single mode 7 cv::VideoCapture g_cap; 8 9 void onTrackbarSlide(int pos, void*) { 10 g_cap.set(CV_CAP_PROP_POS_FRAMES, pos); 11 if (!g_dontest) g_run = 1; 12 g_dontest = 0; 13 } 14 15 int main(void) { 16 cv::namedWindow("Example 2-4", cv::WINDOW_AUTOSIZE); 17 g_cap.open("test.mp4"); 18 int frames = (int)g_cap.get(CV_CAP_PROP_FRAME_COUNT); 19 int tmpw = (int)g_cap.get(CV_CAP_PROP_FRAME_WIDTH); 20 int tmph = (int)g_cap.get(CV_CAP_PROP_FRAME_HEIGHT); 21 std::cout << "Video has " << frames << " frames of dimensions(" 22 << tmpw << ", " << tmph << ")." << std::endl; 23 24 cv::createTrackbar( 25 "Position", 26 "Example 2-4", 27 &g_slider_position, 28 frames, 29 onTrackbarSlide 30 ); 31 cv::Mat frame; 32 33 while (1) { 34 if (g_run != 0) { 35 g_cap >> frame; 36 if (frame.empty()) break; 37 int current_pos = (int)g_cap.get(CV_CAP_PROP_POS_FRAMES); 38 g_dontest = 1; 39 40 cv::setTrackbarPos("Position", "Example 2-4", current_pos); 41 cv::imshow("Example 2-4", frame); 42 43 g_run = 1; 44 } 45 46 char c = (char)cv::waitKey(10); 47 48 if (c == 's') { // single step 49 g_run = 1; 50 std::cout << "Single step, run = " << g_run << std::endl; 51 } 52 53 if (c == 'r') { 54 g_run = 1; 55 std::cout << "Run mode, run = " << g_run << std::endl; 56 } 57 58 if (c == 27) break; 59 } 60 return 0; 61 }
Example 2-5高斯滤波
1 #include "opencv2/opencv.hpp" 2 3 int main(void) { 4 cv::Mat image = cv::imread("wang.jpg"); 5 cv::namedWindow("Example 2-5-in", cv::WINDOW_AUTOSIZE); 6 cv::namedWindow("Example 2-5-out", cv::WINDOW_AUTOSIZE); 7 // create a window to show our input image 8 cv::imshow("Example 2-5-in", image); 9 cv::Mat out; 10 11 cv::GaussianBlur(image, out, cv::Size(5, 5), 3, 3); 12 cv::GaussianBlur(out, out, cv::Size(5, 5), 3, 3); 13 14 cv::imshow("Example 2-5-out", out); 15 cv::waitKey(0); 16 cv::destroyWindow("Example 2-5"); 17 return 0; 18 }


 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号