C++openCV图像的读取、显示、保存、信息


 OpenCV支持bmp、jpg、png、tiff等常用图像格式的解析

#include <opencv2/opencv.hpp> //头文件

int main()
{
    
    cv::Mat img = cv::imread("./tu/马.jpg", cv::IMREAD_UNCHANGED); //读入一张图片
    /*
    参数2:图像文件解析的方式,支持的方式有如下:
            cv::IMREAD_UNCHANGED    不对图像文件进行任何转换,直接读取【读入完整图片,包括alpha通道(png有,jpg无)】
                IMREAD_GRAYSCALE    将任何图像均转换为灰度图像(单通道)进行读取
                IMREAD_COLOR        将任何图像均转为RGB彩色图像(三通道)进行读取【默认参数,读入一副彩色图片,忽略alpha通道】
                IMREAD_ANYDEPTH     如果不设置这个参数,16/32位图像将会自动转为8位图像
                IMREAD_ANYCOLOR     将按照图像文件设定的颜色格式进行图像读取
                IMREAD_LOAD_GDAL    调用gdal库进行图像文件读取。(可以简单地理解为读取TIFF图像文件)
    */ imshow("new", img); //在窗口中显示载入的图片 //参数1:窗口标题,如果找不到参数1的窗口就新建一个
    //imread读入的图像
    //imshow函数只支持8位灰度图像、8位彩色图像和32位灰度图像(像素值范围0-1)
    cv::waitKey(6000);
    img = cv::imread("./tu/猫.jpg", cv::IMREAD_UNCHANGED);
    imshow("new", img);
    cv::waitKey(6000); // 等待6000 ms
}

 

#include <opencv2/opencv.hpp> 
int main()
{
    
    cv::Mat img = cv::imread("./tu/马.jpg", cv::IMREAD_UNCHANGED); 
    int w = img.cols; //返回图片的宽度
    int h = img.rows; //返回图片的高度
    unsigned char* p = img.data; //数据缓存区指针
    unsigned int x = (unsigned int)p;

    x = img.channels(); //返回通道数
 x = img.elemSize();//返回的是一个像素占用的字节数
 x = img.elemSize() / img.channels() * 8; //深度

    std::cout  << x << std::endl;
            
    cv::waitKey(6000);
    
}

 

cv::Mat img = cv::imread("./tu/马.jpg", cv::IMREAD_UNCHANGED); 

    std::vector<int> compression_params;
    compression_params.push_back(cv::IMWRITE_JPEG_QUALITY); 
    compression_params.push_back(50);

    cv::imwrite("my.jpg", img, compression_params); //保存图片 //参数1:文件名
    //参数2:Mat类型的矩阵
    /*
    参数3:[可选]表示为特定格式保存的参数编码,std::vector<int>类型
    看:https://blog.csdn.net/mars_xiaolei/article/details/62233900?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase 
    */

 

 

 

 

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM