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 }

 

posted @ 2020-03-26 23:25  尘归风  阅读(510)  评论(0)    收藏  举报