• 图像、视频和数据文件


      HighGUI,可移植的图形工具包

      图像文件处理 (Working with Image File)

      加载和保存图像,即读写文件

      cv::imread(),读取文件

      函数原型

    cv::Mat cv::imread(
        const string& filename, // Input filename
        int flags = cv::IMREAD_COLOR // Flags set how to interpret file
    );

      该函数在图像加载失败时,并不抛出异常,只返回一个空的cv::Mat(cv::Mat::empty()==true)

      cv::imwrite(),写文件

      函数原型

    bool cv::imwrite(
        const string& filename, // Input filename
        cv::InputArray image, // Image to write to file
        const vector<int>& params = vector<int>() // (Optional) for parameterized fmts
    );

      该函数在图像保存成功时,返回一个true,否则返回一个false

      图像压缩和解压缩

      cv::imread和cv::imwrite都是由多个子模块构成的,可以将子模块单独使用,也可以作为一个整体使用,特别是在内存中对图像进行压缩和解压缩

      cv::imencode(),压缩文件

      函数原型

    void cv::imencode(
        const string& ext, // Extension specifies codec
        cv::InputArray img, // Image to be encoded
        vector<uchar>& buf, // Encoded file bytes go here
        const vector<int>& params = vector<int>() // (Optional) for parameterized fmts
    );

      cv::imdecode(),解压缩文件

      函数原型

    cv::Mat cv::imdecode(
        cv::InputArray buf, // Encoded file bytes are here
        int flags = cv::IMREAD_COLOR // Flags set how to interpret file
    );

      视频文件处理(Working with Video)

      cv::VideoCapture::VideoCapture类对象,读取视频文件

      函数原型,依据不同的视频源,调用三种不同的函数创建VideoCapture类对象

    cv::VideoCapture::VideoCapture(
        const string& filename, // Input filename
    );
    cv::VideoCapture::VideoCapture(
        int device // Video capture device id
    );
    cv::VideoCapture::VideoCapture();

      你需要在计算机中安装适当的视频解码器,以成功的读取视频文件

      cv::VideoCapture::read(),读取视频帧

      函数原型

    bool cv::VideoCapture::read(
        cv::OutputArray image // Image into which to read data
    );

      cv::VideoCapture::operator>>(),读取视频帧

      函数原型

    cv::VideoCapture& cv::VideoCapture::operator>>(
        cv::Mat& image // Image into which to read data
    );

      cv::VideoCapture::grab() ,读取视频帧

      将当前可用视频读到用户不可见的内存缓冲区,为什么设计成不可见,因为读取的视频是没有加工过的,只是为了快速的读到内存而已  

      函数原型

    bool cv::VideoCapture::grab( void );

      cv::VideoCapture::retrieve(),读取视频帧

      函数原型

    bool cv::VideoCapture::retrieve(
        cv::OutputArray image, // Image into which to read data
        int channel = 0 // Used for multihead devices
    );
  • 相关阅读:
    关闭 Window 之后,无法设置 Visibility,也无法调用 Show、ShowDialogor 或 WindowInteropHelper.EnsureHandle。
    WPF中的逻辑树和可视化树
    StopWatch
    【转】Oracle imp 总是不停地重复闪烁
    Ubuntu下借助URLOS实现快速安装DzzOffice企业办公套件
    linux下使用URLOS搭建nextcloud私有云盘系统
    在Debian下利用URLOS快速安装SqlServer2017
    使用URLOS 五分钟安装rTorrent (轻量级优秀BT/PT客户端)
    URLOS开发基础教程——docker容器的使用方法
    使用URLOS在linux系统中极速部署NFS共享存储服务
  • 原文地址:https://www.cnblogs.com/GoldenEllipsis/p/12974041.html
Copyright © 2020-2023  润新知