• 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判断矩阵是否是一个图像数据矩阵。
  • 相关阅读:
    python 接口自动化测试搭建钉钉环境
    接口测试流程梳理
    兼容性测试
    软件测试流程
    软件测试---黑盒测试的测试用例的设计方法
    软件基础之-----测试的方法
    基于Selenium2+Java的UI自动化(8)- 显式等待和隐式等待
    基于Selenium2+Java的UI自动化(6)-操作Alert、confirm、prompt弹出框
    基于Selenium2+Java的UI自动化(5)
    基于Selenium2+Java的UI自动化(4)
  • 原文地址:https://www.cnblogs.com/ranjiewen/p/5654067.html
Copyright © 2020-2023  润新知