MATLAB接口

imread(img),读取保存的数据是unit8类型的。im2double(img)处理的数据全是[0,1]之间的。在matlab中为了保证精度,经过了运算的图像矩阵I其数据类型会从unit8变为double。

imshow函数显示图像时对double型会认为0~1范围内,即大于1都显示为白色,而imshow显示unit8时是0~255范围。

imwrite同。     解决:

imshow(I/255).............将图像矩阵转化到0-1之间

imshow(I,[ ])...........将图像矩阵I的最大值和最小值分别作为纯白255和纯黑0,之间的I值映射为0-255之间的标准灰度值

从实验结果看,两种方法都解决了问题,但从显示的图像看,第二种方法的明暗黑白对比强烈些 
如果空矩阵 ([]) 来代替 [low high], imshow 函数将使用 [min(I(:))max(I(:))]作为第二个参数。

若希望将0-65535的灰度级映射到0-255上,则可采用以下的办法:

uint8(double(number)/65535*255)

把图像I1转换成double精度类型(假设图形矩阵范围0~255)

I2=im2double(I1)   或  I64=double(I8)/255;   %uint转换成double

如果矩阵复合数据图像标准(0~1之间),

I3=im2uint8(I2)  %把矩阵I2转换成uint8类型

如果超出0~1范围,就要用uint8()

I8=uint8(round(I64*255));  %double转换成uint8    自动切割0-255

或 I3=mat2gray(I2)  &把矩阵转化为灰度图像格式double
 

complex_data = double(full_data(:,:,1)) + i*double(full_data(:,:,2));    

 

level 4 开始 矩阵超出索引维度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值