• 【Matlab】abs不支持复整数


    需要将uint8转换成double型数据才能计算
    https://blog.csdn.net/lihe4151021/article/details/89372688
    图像数据格式uint8与double以及图像类型转换

    1. 图像数据格式
      double(64位):matlab中数值一般采用double型存储和运算。
      uint8(8位无符号整数):为了节省存储空间,matlab为图像提供的特殊数据类型。imread把灰度图像存入一个8位矩阵,当为RGB图像时,就存入8位RGB矩阵中,因此,matlab读入图像的数据是uint8.
    2. 图像类型转换
      matlab读入图像的数据是uint8,而matlab中数值一般采用double型(64位)存储和运算。所以要先将图像转为double格式的才能运算,区别如下:
    img = imread('test.jpg'); % 读入是unit8型(0~255)数据
    I1  = im2double(img);    % 把图像转换成double精度类型(0~1)
    I2  = double(img)/255;   % uint8转换成double,作用同im2double
    

    (1) im2double( )和double( )的区别。double( img)就是简单的数据类型转换,将无符号整型转换为双精度浮点型double,但是数据大小没有变化,原本数据是0-255之间,转化后还是0-255。例如原来是255,那么转换后为255.0,小数位0个数是由double数据长度决定,实际数据大小还是255,只不过这个255已经是double类型空间存储了,再增加不会发生溢出情况。而im2double(img)则不仅仅是将uint8转换到double类型,而且把数据大小从0-255映射到0-1区间。
    (2)对double型数据进行im2double处理没有任何作用,即imdouble不会对double类型数据0-255映射到区间0-1

  • 相关阅读:
    TCP性能调优
    Qt 实现应用程序单实例运行
    table多选
    多选删除最佳处理
    获取路由或路径
    当前页面打开新页面
    vue版本更新index.html缓存
    vue项目js和css文件名避免浏览器缓存再vue.config.js中配置
    vue动态表格
    IE网页被缓存,get接口缓存
  • 原文地址:https://www.cnblogs.com/kinologic/p/14306925.html
Copyright © 2020-2023  润新知