matlab图像uint8和double的关系,除以255乘以255
matlab默认图像的储存和读取方式为uint8但是为了计算和表达方便matlab针对uint8和double都有相应操作有时我们会疑惑一会iMG = double(img);imshow(uint8(IMG)*25)一会imshow(IMG)imwrite同样有如此操作为什么呢??????????我们在使用时可以分成两个体系在用uint8时,matlab默认图像为[0,2...
二郎就不设置什么VIP可见啥的了,这样大家都能看到。
如果觉得受益,可以给予一些打赏,也算对原创的一些鼓励,谢谢。
钱的用途:1)布施给他人;2)二郎会有更多空闲时间写教程
matlab读取图像的程序imread,读入后的数据为uint8
matlab保存图像的程序imwrite,写入时的输入可以为uint8或double
但是为了计算和表达方便
matlab针对uint8和double都有相应操作
有时我们会疑惑
一会
iMG = double(img);
imshow(uint8(IMG)*25)
一会
imshow(IMG)
imwrite同样有如此操作
为什么呢??????????
我们在使用时可以分成两个体系
在用uint8时,matlab默认图像为[0,255],即你在imshow和imwrite时,数据是[0,255]范围是没有问题的。此时如果直接double转为uint8(数据类型转换,数据大小不会改变,不是你的double转为uint8,你的[0,1]直接就能转为[0,255]),数据将集中在[0,1],也就是全部数据都在0或1,你的图像就是全黑。
在用double时,matlab默认图像为[0,1],即你在imshow和imwrite时,数据要是在[0,255],那么大于1的全为1,所以你的图像就是全白。
因此我们在图像数据类型转换时,需要乘以255和除以255
uint8→double//////////double(img)/255
double→uint8/////////uint8(img*255)
更多推荐

所有评论(0)