自己太小白了  这个纯属给自己看的

什么是图像深度

imwrite("D:/result.png ", dst);

这样保存的图像默认是每个通道8位的字节图像,常见的RGB图像是图像深度为24,这个可以通过windows下查看图像属性获得,截图如下:

如果每个通道占16位的话,RGB图像深度就会变成48,如果每个通道占32位的话,深度就会变成96,显然图像深度越大,图像文件也会越多,加载时候消耗的内存也会越多,所以OpenCV中默认读写图像都是每个通道8位(单字节)图像。

重温imwrite函数

假设我们想保存图像为16位或者32位浮点数图像时候,我们该怎么去做,在开始之前我们首先再次复习一下OpenCV中保存图像的API函数-imwrite

bool cv::imwrite(const String &  filename,InputArray img,const std::vector< int > &  params = std::vector< int >()
)
Filename 参数为声明的文件保存路径
Img参数表示的是将要保存的Mat图像对象
Params 表示的是保存图像时的选项,

这些选项包括PNG/JPG/WEBP/TIFF压缩质量、格式选择等,可以分为如下四个大类

  • ImwriteEXRTypeFlags

  • ImwriteFlags

  • ImwritePAMFlags

  • ImwritePNGFlags,

之前写过一篇文章是关于在保持时候如何使用这些选项对图像进行适当的压缩处理,这里关于Params参数使用方式就不再赘述,主要是基于key-value方式添加到vector中去即可。

imwrite函数在关于保存为不同深度格式时候的图像类型支持说明如下:

  • 8位的图像(CV_8U),支持png/jpg/bmp/webp等各种常见图像格式

  • 16位的图像(CV_16U),支持png/jpeg2000/TIFF格式

  • 32位的图像(CV_32F),支持PFM/TIFF/OpenEXR/TIFF/HDR

在要保存为指定格式之前,可以通过convertTo或者cvtCOLOR进行图像类型或者通道转换之后,再调用imwrite进行保存。

各种不同深度保存

16位图像保存

转换之后,如果直接保存,代码如下:

// 加载图像
Mat src = imread("D:/flower.png", IMREAD_UNCHANGED);
printf("depth %d \n", src.depth());// 转为为16位图像
Mat dst;
src.convertTo(dst, CV_16U);
imshow("flower16", dst);
imwrite("D:/flower-16.png", dst);

转换之后,归一化之后再保存,代码如下:

// 加载图像
Mat src = imread("D:/flower.png", IMREAD_UNCHANGED);
printf("depth %d \n", src.depth());// 转为为16位图像
Mat dst;
src.convertTo(dst, CV_16U);// 归一化再保存
normalize(dst, dst, 0, 256 * 256, NORM_MINMAX);
imwrite("D:/flower-16.png", dst);
imshow("flower-16", dst);

两者效果对比如下:

32位图像保存

// 加载图像
Mat src = imread("D:/flower.png", IMREAD_UNCHANGED);
printf("depth %d \n", src.depth());// 转为为32位图像
Mat dst;
src.convertTo(dst, CV_32F);// 归一化再保存
normalize(dst, dst, 0, 1.0, NORM_MINMAX);
imwrite("D:/flower-32.png", dst);
imshow("flower-32", dst);

对上述各种不同深度的图像,必须通过下面的方式才可以正确读取

Mat src = imread("D:/flower.png", IMREAD_UNCHANGED);

其中IMREAD_UNCHANGED表示不对原图像做任何改变。

最后发一些数据集哦

1.火焰和烟雾图像数据集

数据集链接:http://m6z.cn/6fzn0f

该数据集由早期火灾和烟雾的图像数据集组成。数据集由在真实场景中使用手机拍摄的早期火灾和烟雾图像组成。大约有7000张图像数据。图像是在各种照明条件(室内和室外场景)、天气等条件下拍摄的。该数据集非常适合早期火灾和烟雾探测。数据集可用于火灾和烟雾识别、检测、早期火灾和烟雾、异常检测等。数据集还包括典型的家庭场景,如垃圾焚烧、纸塑焚烧、田间作物焚烧、家庭烹饪等。本文仅含100张左右。

2.H²O 行人交互检测数据集

数据集链接:http://m6z.cn/6fzmQf

H²O由V-COCO数据集中的10301张图像组成,其中添加了3635张图像,这些图像主要包含人与人之间的互动。所有的H²O图像都用一种新的动词分类法进行了注释,包括人与物和人与人之间的互动。该分类法由51个动词组成,分为5类:

  • 描述主语一般姿势的动词

  • 与主语移动方式有关的动词

  • 与宾语互动的动词

  • 描述人与人之间互动的动词

  • 涉及力量或暴力的互动动词

3.SpotGarbage垃圾识别数据集

数据集链接:http://m6z.cn/5ZMmRG

图像中的垃圾(GINI)数据集是SpotGarbage引入的一个数据集,包含2561张图像,956张图像包含垃圾,其余的是在各种视觉属性方面与垃圾非常相似的非垃圾图像。

4.SUN09场景理解数据集

数据集链接:http://m6z.cn/60wX8r

SUN09数据集包含12000个带注释的图像,其中包含200多个对象类别。它由自然、室内和室外图像组成。每个图像平均包含7个不同的注释对象,每个对象的平均占用率为图像大小的5%。对象类别的频率遵循幂律分布。发布者使用 397 个采样良好的类别进行场景识别,并以此搭配最先进的算法建立新的性能界限。

该数据集由普林斯顿视觉与机器人实验室于 2014 年发布,相关论文有《SUN Database: Large-scale Scene Recognition from Abbey to Zoo》、《SUN Database: Exploring a Large Collection of Scene Categories》。

5.生活垃圾数据集

数据集链接:http://m6z.cn/6n5Adu

大约9000多张独特的图片。该数据集由印度国内常见垃圾对象的图像组成。图像是在各种照明条件、天气、室内和室外条件下拍摄的。该数据集可用于制作垃圾/垃圾检测模型、环保替代建议、碳足迹生成等。

6.HICO-DET人物交互检测数据集

数据集链接:http://m6z.cn/5DdK6D

HICO-DET是一个用于检测图像中人-物交互(HOI)的数据集。它包含47776幅图像(列车组38118幅,测试组9658幅),600个HOI类别,由80个宾语类别和117个动词类别构成。HICO-DET提供了超过150k个带注释的人类对象对。V-COCO提供了10346张图像(2533张用于培训,2867张用于验证,4946张用于测试)和16199人的实例。

whaosoft aiot http://143ai.com

OpenCV~图像深度相关推荐

  1. opencv图像深度-1_OpenCV空间AI竞赛之旅(第1部分-初始设置+深度)

    opencv图像深度-1 OpenCV空间AI竞赛 (OpenCV Spatial AI Competition) Recently, the people at OpenCV launched th ...

  2. Opencv 图像深度+转换深度

    1. opencv 图像深度 图像深度是指存储每个像素所用的位数,也用于量度图像的色彩分辨率.图像深度确定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数.它决定了彩色图像 ...

  3. opencv 图像深度depth的理解

    我们在创建mat的时候,可以选择的CvType中有很多的选项 CV_8UC1 CV_8SC1 CV_16U C1 CV_16SC1 CV_8UC2 CV_8SC2 CV_16UC2 CV_16SC2 ...

  4. opencv 图像深度(depth)

    图像深度是指存储每个像素所用的位数,也用于量度图像的色彩分辨率.图像深度确定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数.它决定了彩色图像中可出现的最多颜色数,或灰度图 ...

  5. 21.失真/低高通/振铃效应/旁瓣泄漏效应/频域滤波/图像深度/频带/线性滤波源码分析 -- OpenCV从零开始到图像(人脸 + 物体)识别系列

    本文作者:小嗷 微信公众号:aoxiaoji 吹比QQ群:736854977 简书链接:https://www.jianshu.com/u/45da1fbce7d0 本文你会找到以下问题的答案: 失真 ...

  6. opencv关于图像深度转换的一点理解

    常用图像深度如下: 图像类型 数据类型 字节 取值范围 显示范围 CV_8U unsigned char 1 0~255 0~255 CV_8S char 1 -128~127 -128~128 CV ...

  7. 语义分割:基于openCV和深度学习(二)

    语义分割:基于openCV和深度学习(二) Semantic segmentation in images with OpenCV 开始吧-打开segment.py归档并插入以下代码: Semanti ...

  8. 语义分割:基于openCV和深度学习(一)

    语义分割:基于openCV和深度学习(一) Semantic segmentation with OpenCV and deep learning 介绍如何使用OpenCV.深度学习和ENet架构执行 ...

  9. 用OpenCV和深度学习进行年龄识别

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|机器学习算法那些事 在本教程中,您将学习如何使用OpenC ...

最新文章

  1. 你的老师看你编码的样子
  2. Android开源框架——依赖注入ButterKnife
  3. kafka 不同分区文件存储_Kafka文件存储机制思考及答案:为什么要分区呢?分区存了哪些内容?...
  4. android 如何将WPS文档转成PDF
  5. 牛客网【每日一题】5月8日题目精讲 codeJan与旅行
  6. 【转载保存】Jsoup使用
  7. 计算机基本概念及简单的二进制运算
  8. 杭电 2015 偶数求和
  9. linux 每日学一点《Linux挂载NTFS分区方法》
  10. oracle sql 查询无数据_信运大讲堂丨ORACLE数据库SQL和索引
  11. java--cmd乱码
  12. 贪心科技机器学习训练营(五)
  13. 统计学理论—一元线性回归
  14. 哈工大人工智能研究院院长刘劼:打造从科研到产业的创新生态
  15. C++并发编程(C++11到C++17)
  16. python中remove函数的用法_Remove函数用法
  17. 通过GitHub静态网页托管,十分钟制作一份精美的在线网页简历
  18. 2017年最火的19个行业,你做哪行!
  19. 计算机上的查找替换功能快速格式化,Excel 2016中使用查找替换功能应用技巧
  20. 粤海服务器维修,粤海街道总工会搭设“悦读”平台邀职工分... 深圳本地-大加...

热门文章

  1. 领峰:投资者要掌握什么才能做好黄金期货走势分析
  2. 用ISO-8859-1解决Python 'utf-8' codec can't decode bytes in position 924-925问题
  3. Outlook 2003新建邮件多了个“发件人”栏
  4. outlook2003数据存储位置更改
  5. 读effection java
  6. 基于php中医药资讯网站管理系统源码获取
  7. html自动求平均值,教大家Excel自动求平均值的函数公式教程
  8. Nvidia3090显卡驱动+CUDA+cuDNN安装步骤
  9. any在mysql语句中用法_MySQL中,子查询中可以使用运算符ANY,它表示的意思是______。...
  10. Python--项目(开发简易记事本软件)