mfc cimage加载显示图片_OpenCV加载图片显示对应类型(位深度)方法
对于部分初学者,偶尔会想在代码中查看图片的位深度,一般我们会用Mat.type()来获得类型,但是默认输出的是整型数字,不便于理解,可能还需要自己对照宏定义去查看,这里有一段代码可以实现将整型转为宏定义位深度
string Type2String(int type){ string strType; uchar depth = type & CV_MAT_DEPTH_MASK; uchar chans = 1 + (type >> CV_CN_SHIFT); switch (depth) { case CV_8U: strType = "CV_8U"; break; case CV_8S: strType = "CV_8S"; break; case CV_16U: strType = "CV_16U"; break; case CV_16S: strType = "CV_16S"; break; case CV_32S: strType = "CV_32S"; break; case CV_32F: strType = "CV_32F"; break; case CV_64F: strType = "CV_64F"; break; default: strType = "UNKNOWN_TYPE"; break; } strType += "C"; strType += (chans + '0'); return strType;}
比如,使用imread读取图片,如果flags参数不填,默认以彩色模式读取并转为8位,那么类型就是CV_8UC3, 如果flags设置位0,则以灰度模式读取,类型位CV_8UC1。但是,有时候我们会读取一些16位或32位的图片,这时候就需要设置flags参数为 IMREAD_UNCHANGED,这样读取的图片位深度才会被正确显示,如下:
Mat img = imread("1.tif", IMREAD_UNCHANGED);cout <endl;cout <endl;
flags参数其他含义可以参考定义说明查看:
完整代码:
#include#includeusing namespace std;using namespace cv;string Type2String(int type){ string strType; uchar depth = type & CV_MAT_DEPTH_MASK; uchar chans = 1 + (type >> CV_CN_SHIFT); switch (depth) { case CV_8U: strType = "CV_8U"; break; case CV_8S: strType = "CV_8S"; break; case CV_16U: strType = "CV_16U"; break; case CV_16S: strType = "CV_16S"; break; case CV_32S: strType = "CV_32S"; break; case CV_32F: strType = "CV_32F"; break; case CV_64F: strType = "CV_64F"; break; default: strType = "UNKNOWN_TYPE"; break; } strType += "C"; strType += (chans + '0'); return strType;}void main(){ Mat img = imread("1.tif", IMREAD_UNCHANGED); cout << img.type() << endl; cout << Type2String(img.type()) << endl;}
mfc cimage加载显示图片_OpenCV加载图片显示对应类型(位深度)方法相关推荐
- python opencv压缩图片_OpenCV Python 缩放图片
By 凌顺 2019年9月12日 本示例使用的OpenCV版本是:4.1.1 运行Python的编辑器:Jupyter notebook 示例目的 使用OpneCV的cv2.resize()函数对图片 ...
- mfc cimage加载显示图片_在微信小程序里实现图片预加载组件
网页中的图片预加载 我们知道在 Web 页面中实现图片的预加载其实很简单,通常的做法是在 JS 中使用 Image 对象即可,代码大致如下 var image = new Image() image. ...
- html加载完显示图片,js图片未加载完显示loading效果
js图片未加载完显示loading效果 img{float:left;200px;height:200px;margin:0 10px 10px 0} //判断浏览器 var Browser=new ...
- Android之ListView异步加载图片且仅显示可见子项中的图片
折腾了好多天,遇到 N 多让人崩溃无语的问题,不过今天终于有些收获了,这是实验的第一版,有些混乱,下一步进行改造细分,先把代码记录在这儿吧. 网上查了很多资料,发现都千篇一律,抄来抄去,很多细节和完整 ...
- Vue本地图片循环加载显示不出来,vue img标签 :src地址拼接
Vue本地图片循环加载显示不出来,vue img标签 :src地址拼接 上代码: <img:src="img"alt="banner" /> dat ...
- 关于图片加载的问题-如加载失败显示占位图,预加载,懒加载
一.图片加载失败时,如图所示 <img v-if="src" :src="src" :onerror="errorImg">le ...
- echarts树图图标修改成图片以及自定义图片首次加载不显示的问题的修改<js>
首先看一下显示效果,如下图所示: 1.首先修改图片,在option对象中加入 下方代码就可实现图片的修改,但是存在bug symbol:'image://https://ss2.bdstatic.co ...
- Bmob+Luban(鲁班)压缩图片实现相册选择图片压缩后上传到Bmob后台Glide加载图片显示到本地
源代码已上传CSDN:https://download.csdn.net/download/qq_16519957/11068345 因为本章需要跟前面的知识结合起来看所以就做了一个前面链接方便大家查 ...
- 使用QT实现一个图像处理软件1 —— 图片的加载和显示
为了实现图片的加载和显示,本文主要将使用到Qt中的几个类,分别是: QImage,这是Qt实现的一个存储图片信息的类,支持大部分的图片格式,支持像素操作,后续所有的图像处理算法都将在这个类的基础上进行 ...
- vue图片img加载失败显示自定义默认图片(缺省图)
vue图片img加载失败显示自定义默认图片(缺省图) 1.图片加载示例 2.加载失败显示默认图片 3.加载失败默认图片代码处理 <div class="book-img" ...
最新文章
- 和达摩院深度绑定,阿里云下一个十年,成为“云上的阿里巴巴”
- 自己对多线程的一点思考
- 快速了解Druid -- 实时大数据分析软件
- sourcetree不好做到的一些git操作
- element ui中 el-table根据不同的值设置单元格背景色
- 我对于男人喜欢喷香水是觉得很恶心的一件事
- 阿里云丁宇:阿里巴巴15年云原生实践
- 锐捷Linux认证失败,锐捷上网认证常见问题及解决办法
- linux 有dll文件吗,linux上可以运行dll吗
- NanoHttpd android客户端作为服务器使用
- 谷歌邮箱无法登录问题
- SpringBoot @Mapper注解实现类型转换bean无法注入
- java计算机毕业设计培训学校教学管理平台源码+程序+lw文档+mysql数据库
- yolov7基于python 的onnx推理
- 201771010101 白玛次仁
- python解多元多次方程组_Python求解多重或非线性方程,python,多元,多次,方程组,线性方程组...
- Delphi中record的使用
- 上下文感知分析:对最重要的漏洞进行优先级排序
- 证明:旋转矩阵是正交矩阵
- 二十六、ISIS技术总结
热门文章
- 扇贝有道180910每日一句
- Atitit 数据库结果集映射 ResultSetHandler 目录 1. 常见的四种配置ResultSetHandler	1 2. Dbutil	1 3. Mybatis 致敬	3 4. H
- Atitit 常见软件设计图纸总结 目录 1.1. ui原型图与html	2 1.2. 业务逻辑 伪代码 各种uml图	2 1.3. 总体设计图纸 结构图 层次图 架构图	2 1.4. 业务逻辑
- Atitit 知识管理之 经济学概论 attilax 学习心得
- Atitit gui界面ui技术发展史与未来趋势
- Atitit.md5 实现原理
- atitit.提升备份文件复制速度(4) ---数据挖掘 获取回收站文件列表
- paip.web service技术在 JAVA与.NET中的应用流程方案
- paip.URL参数压缩64进制
- Python : async和await、asyncio与aiofiles