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());
       }

     

     

     

  • 相关阅读:
    手动挂接NFS
    Linux中移动,复制,删除,打包排除某个目录或文件
    关于职业规划,尤其值得我们程序员学习、思考
    深入探究VC —— 链接器link.exe(4)
    用VC实现动态改变Windows的显示特性
    Windows常用控件的创建和使用
    如何添加自定义icon
    深入探究VC —— 资源编译器rc.exe(3)
    深入探究VC —— 编译器cl.exe(2)
    gluLookAt()
  • 原文地址:https://www.cnblogs.com/lovebay/p/12689483.html
Copyright © 2011-2022 走看看