matlab中imagesc函数得到图像,怎么还原? 15

我有一个矩阵,用imagesc函数得到了一张彩色图像,现在我想把这张图像还原成以前的那个矩阵该怎么做?... 我有一个矩阵,用imagesc函数得到了一张彩色图像,现在我想把这张图像还原成以前的那个矩阵该怎么做? 展开
 我来答
dukinkin
2015-09-21 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:931万
展开全部
理论上从图像是不能完全恢复出原来的矩阵数据的
因为在由数据转化为图像的过程中量化的时候丢失了信息

可以从得到的图像和所使用的colormap恢复一定的数据信息
如果得到图像的数据假设为变量im,应该是1个mxnx3的矩阵
m和n表示图像的像素,第三维大小为3,分别储存图像的r,g,b数据
又知道原来的画图所用的colormap,假设为变量map

那么可以用函数a= rgb2ind(im,map)
这时候得到的a是一个整数矩阵
b=double(a)./double(max(a(:)));
这样得到的b是一个数值范围从0到1的矩阵
0表示最小值,1表示最大值
这是从图像恢复数据可以做到的程度,和原来的数据有较大差距

如果你知道原来的数据的数值范围,也就是最小值和最大值minv maxv
那么还可以 c=minv+(maxv-minv)*b;
进一步得到和原数据相似的矩阵,但是已经不能100%还原矩阵了
追问
我知道原来的数据的数值范围,能否帮我写出来代码,谢谢
追答
你还得知道你原来用imagesc的时候用的是什么colormap
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式