zoukankan      html  css  js  c++  java
  • opencv图像操作

    opencv图像操作常见方法

    一、图像初始化方法

      Mat M(100,100,CV_8UC3,Scalar(0,0,255));    //彩色图像初始化

      Mat M(100,100,CV_8UC1,255);                  //单通道图像初始化

    Mat dst;
    ///* //深拷贝图像
    dst = src.clone(); 

     

    注:图像深拷贝,opencv 中mat直接赋值“=” ,是不会另外开辟内存的,mat就像一个指针。

    //创建和src图像大小相同的图像,并且赋初值为红色
    Mat m1;
    m1.create(src.size(), src.type());
    m1 = Scalar(0, 0, 255);
    //初始化一个纯黑色的图片,与原图像的大小和类型一样
    Mat m2 = Mat::zeros(src.size(), src.type());

     二、读取和保存

    读取

    //【1】读取源图像并检查图像是否读取成功  
        g_srcImage = imread("ddb22Picture000.jpg");
        if (!g_srcImage.data)
        {
            cout << "读取图像有误,请重新输入正确路径!
    ";
            return -1;
        }
        imshow("源图像", g_srcImage);    //在窗口显示源图像
        cout << "源图像g_srcImage的行高:" << g_srcImage.rows << ", 列宽:" << g_srcImage.cols << endl;

    保存

        vector<int> compression_params;
        compression_params.push_back(CV_IMWRITE_JPEG_QUALITY);  //选择jpeg
        compression_params.push_back(80); //在这个填入你要的图片质量
    
        //std::vector<int>compression_params;
        //compression_params.push_back(cv::IMWRITE_PNG_COMPRESSION);
        //compression_params.push_back(9);
        try {
            imwrite("透明值图.png", mat, compression_params);
            //imwrite("透明值图.jpg", mat, compression_params);
            imshow("生成的PNG图", mat);
            fprintf(stdout, "PNG图片文件的数据保存完毕");
            cv::waitKey(0);
        }
        catch (runtime_error& ex) {
            fprintf(stderr, "图像转换发生错误:%s
    ", ex.what());
       }

     

     

     

  • 相关阅读:
    ansible-palybook剧本
    ansible服务的部署与使用
    keepalived实现nginx高可用
    Linux下通过uptime判断负载情况
    2个无线路由器怎么连接
    Delphi FastReport动态加载图片 (转载)
    SQLite 日期 & 时间
    SuperObject使用
    php int 与 datetime 转换
    sqlserver 2005/2008 导入超大sql文件
  • 原文地址:https://www.cnblogs.com/lovebay/p/12689483.html
Copyright © 2011-2022 走看看