zoukankan      html  css  js  c++  java
  • OpenCV图像读取和写入

    opencv默认读入图像的数据类型为 uchar 一个字节。

    利用OpenCV的 imwrite 函数 可以将 uchar 8位 和 uint6_t 16位数据保存在 jpg 或 png图像中。

    CV_32F 数据可以保存为PFM,TIFF,OpenEXR和Radiance HDR格式

    https://blog.csdn.net/mars_xiaolei/article/details/62233900

    imwrite 可以定义数据的压缩等级, void imwrite(string filename, Mat src, compression_params )

    vector<int> compression_params;
    compression_params.push_back(CV_IMWRITE_PNG_COMPRESSION);
    compression_params.push_back(0); // 无压缩png.默认压缩值为1

    读入深度图像

    imread(string filename, int flag);

    默认读入数据类型为 uchar,3通道, flag为1 (IMREAD_COLOR)。

    若想读入灰度图(单通道、uchar类型),那么 flag 可以设置为 0(IMREAD_GRAYSCALE)

    对于CV_16U的数据类型,需要注明是读入任意深度数据,那么 flag 为2 (IMREAD_ANYDEPTH),此时还是三通道(每个通道均为相同的值)。

    需要用 split 分离出单通道。

    显示图像

    imshow( string windowname, Mat src) 只能显示 uchar 类型的图像

    对于 深度为 CV_16U 之类的数据需要先进行转换,否则会报错。

    如下则可以:

    cv::Mat temp;
    src.convertTo(temp, CV_8UC1, 255.0 / 131071);
    cv::equalizeHist(temp, temp); // 均衡化直方图,让图像看起来更明显
    cv::imshow("image", temp);
    cv::waitKey();
  • 相关阅读:
    linux笔记
    restful课程凌杂知识点
    Django中间件执行流程
    restful知识点之二restframework视图
    restful知识点之一CBV
    可变长参数
    函数的重点内容
    文件的高级应用及修改的两种方式
    文件的三种打开方式及with管理文件上下文
    字符编码
  • 原文地址:https://www.cnblogs.com/2Bthebest1/p/11275638.html
Copyright © 2011-2022 走看看