趣谈MATLAB的图像读入格式问题

本文介绍了如何使用MATLAB处理图片并将其转化为矩阵形式,重点讲解了如何正确地将CSV文件中的矩阵还原为原始图片,包括使用不同的函数如imshow和imagesc,并解释了double和uint8类型之间的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         最近gbl在学图像处理,为了卖弄一下所学知识,便去找lym切磋,说:“给你一个数据.csv文件,你来解读一下里面的信息,如果无法解读就不要找我玩了,解读出来的话有惊喜哦!”

         首先,弄一张图片,如下图所示,


      接下来就是将其转化为二维矩阵放到EXCEL中,程序如下:

    k=imread('/Users/gbl/Desktop/yy.png')%读入图片
    kb=rgb2gray(k)%转为灰度图像
    imshow(kb)

      显示结果如下:


       好了,大功告成,只要将矩阵kb发给lym就行了。但是转念一想,“万一不能由矩阵得到图片咋办,先自己试试吧”。

    gbl=load('key.csv')
    imshow(gbl)

       糟糕,果然不能还原!如下图:


      如此,gbl只能去学习了,原来MATLAB矩阵一般以double类型存储,而图片则以uint8来进行存储。所以必须进行转化,于是,gbl这样做:

        gbl=load('key.csv')

        tmp=mat2gray(gbl)

        imshow(tmp)

        还原成功了唉!赶紧发给lym装逼~~~    
        lym 开始了他的破解之路,因为他很想跟gbl玩,凭借他对gbl的了解,细想之下,他打开了MATLAB,输入
    lym=load('key.csv')
    imagesc(lym)
       竟然成功了呢!!!
        
       赶紧去找gbl请吃饭!

总结:
     显示图片可以用imagesc函数,但是这可不是本篇文章的正解啊,虽然字显示出来了,但已经完全不是之前的图片了,颜色都变了。
     gbl来说一下正解哈哈!
     MATLAB中,将图像转为double格式的方法是,cur=double(now)/255,然后进行运算,否则会溢出;
相反,如果想用imshow命令显示图像,则需要将矩阵转化为unit格式,方法如下:
   I=im2uint8(im)%矩阵转化为uint8格式
   I=mat2gray(im)%矩阵转为灰度格式(double)(本文中用的方法)





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值