opencv3(2) 图像载入-显示-输出

  • 载入函数
1
2
3
4
5
6
7
8
Mat imread( const String& filename, int flags = IMREAD_COLOR );
IMREAD_UNCHANGED = -1, //!< If set, return the loaded image as is (with alpha channel, otherwise it gets cropped).
IMREAD_GRAYSCALE = 0, //!< If set, always convert image to the single channel grayscale image.
IMREAD_COLOR = 1, //!< If set, always convert image to the 3 channel BGR color image.
IMREAD_ANYDEPTH = 2, //!< If set, return 16-bit/32-bit image when the input has the corresponding depth, otherwise convert it to 8-bit.
IMREAD_ANYCOLOR = 4, //!< If set, the image is read in any possible color format.
Mat img = imread("D:/learn/dota.jpg");

  • 显示函数
1
imshow("dota", img); 
  • 输出函数
1
2
3
bool imwrite( const String& filename, InputArray img,
const std::vector<int>& params = std::vector<int>());
imwrite("D:/new_dota.jpg", img);
  • 实例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include <iostream>  
    #include <opencv2/core/core.hpp>
    #include <opencv2/highgui/highgui.hpp>
    using namespace cv;
    int main() {
    //图像显示
    Mat logo = imread("D:/learn/logo.jpg");
    imshow("logo", logo);

    //图像混合
    Mat img = imread("D:/learn/dota.jpg");
    imshow("img", img);
    Mat imgROI;
    imgROI = img(Rect(800, 350, logo.cols, logo.rows));
    //logo加载到背景图
    addWeighted(imgROI,0.5,logo,0.3,0,imgROI);
    imshow("dota_logo", img);

    //保存混合的图像
    imwrite("D:/learn/dota_logo.jpg",img);
    waitKey(0);
    }




  • 读取视频文件 调用摄像头 写入视频文件

    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
    #include <iostream>
    #include <opencv2/opencv.hpp>
    using namespace std;
    using namespace cv;
    int main() {
    namedWindow("cap", cv::WINDOW_AUTOSIZE);
    VideoCapture cap;
    Mat frame;
    cap.open(0);

    //视频流写出
    Size size = Size(cap.get(CV_CAP_PROP_FRAME_WIDTH), cap.get(CV_CAP_PROP_FRAME_HEIGHT));
    VideoWriter writer;
    writer.open("test.avi", -1, 10, size);
    //

    for (;;){
    cap >> frame;
    imshow("out", frame);
    writer << frame;
    if (waitKey(33) >= 0) break;
    }
    cap.release();
    //waitKey(0);
    return 0;
    }

版权声明:原创,转载请注明来源,否则律师函警告


opencv3(2) 图像载入-显示-输出
https://jiaopaner.github.io/2019/07/10/opencv3(2) 图像载入-显示-输出/
作者
JiaoPan
发布于
2019年7月10日
许可协议