zoukankan      html  css  js  c++  java
  • Matlab中imshow()函数的使用

         imread() 返回的图像类型是uint8类型, 这时用imshow显示图像的时候, imshow会认为输入矩阵的范围在0-255, 如果imshow的参数为double类型的,那么imshow认为输入矩阵的值为0-1.

         很多时候需要将图像转换为double类型的, 但是转换以后直接使用imshow显示的是一片白色, 是因为当imshow显示图像的时候, 会认为double类型的图像矩阵的范围在0-1, 超过1的像素值当作1处理, 这样就是几乎所有的像素都是白色。

         通过搜索,找到两个解决方法:
             imshow(I/256); -----------将图像矩阵转化到0-1之间
             imshow(I,[]);       -----------自动调整数据的范围以便于显示 (不明白原理!) 
             从实验结果看两种方法都解决了问题,但是从显示的图像看,第二种方法显示的图像明暗黑白对比的强烈些!不知什么原理!        
         此外还找到一些方法,还没有试过,记录如下: 
            uint8和im2uint8的区别 
           图像数据在计算前需要转换为double,以保证精度; 
           很多矩阵数据也都是double的,要想显示,必须先转换为图像的标准数据格式。
           如果转换前的数据符合图像数据标准(比如如果是double则要位于0~1之间),那么可以直接使用im2uint8;如果转换前的数据分布不合规律,则使用uint8,将其自动切割至0~255(超过255的按255)
            最好使用mat2gray,将一个矩阵转化为灰度图像的数据格式(double) 
            另外,可以用isgray判断矩阵是否是一个图像数据矩阵。
  • 相关阅读:
    php 加入即时推送功能
    Yii GridView::widget
    linux 文件文件夹操作
    一套一般般的前端框架 layui
    supervisor 与 yii定时任务 crontab的使用
    yii 国际化
    如何在Webstorm/Phpstorm中设置连接FTP,并快速进行文件比较,上传下载,同步等操作
    docker搭建lnmp环境
    docker搭建lnmp环境(问题,资料,命令)
    yii2 刷新缓存(刷新模型缓存)
  • 原文地址:https://www.cnblogs.com/ranjiewen/p/5654067.html
Copyright © 2011-2022 走看看