zoukankan      html  css  js  c++  java
  • opencvimdecode把vector转换成Mat

    #include<opencv2/opencv.hpp>
    #include<iostream>
    #include  <vector>
    #include "opencv2/imgcodecs/legacy/constants_c.h" 
    
    
    int main(int argc, char** argv) {
    
        FILE* fp;
        errno_t err=fopen_s(&fp, "D:/bb/tu/sansui.jpg", "rb");//以二进制流方式读取图片到内存
        if (err != 0) {
            std::cerr << "cuowu" << std::endl;//提示文件打开错误
        }
        fseek(fp, 0, SEEK_END);
        long lSize = ftell(fp);  //返回指针位置
        rewind(fp);//设置读写指针到文件的开头
        char* pData = new char[lSize];
        fread(pData, sizeof(char), lSize, fp);//读取数据
    
        fclose(fp);
    
        cv::Mat img_decode;
        std::vector<uchar> data;
    
        for (int i = 0; i < lSize; ++i) {
            data.push_back(pData[i]);
        }
        std::cerr << data.size() << std::endl;
        img_decode = cv::imdecode(data, CV_LOAD_IMAGE_COLOR);//把vector转换成Mat
        //需要  #include "opencv2/imgcodecs/legacy/constants_c.h"
        /*
        参数2:
        CV_LOAD_IMAGE_UNCHANGED (<0),以原始图像读取(包括alpha通道),
        CV_LOAD_IMAGE_GRAYSCALE ( 0),以灰度图像读取
        CV_LOAD_IMAGE_COLOR (>0),以BGR格式读取
        */
    
        std::cerr << lSize << std::endl;
    
        cv::waitKey(0);
        return 0;
    }

  • 相关阅读:
    洞察僵尸网络的4条关键线索,你知道吗?
    数据即服务(DaaS)的好处和趋势
    AIOT:什么是智联网,它是未来吗?
    渐变略过效果
    页面头部banner动画效果
    小三角
    监测屏幕宽度
    开关效果
    高级轮播
    手机端跳转页面指定楼层
  • 原文地址:https://www.cnblogs.com/liming19680104/p/15611396.html
Copyright © 2011-2022 走看看