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

我有一个矩阵,用imagesc函数得到了一张彩色图像,现在我想把这张图像还原成以前的那个矩阵该怎么做?

理论上从图像是不能完全恢复出原来的矩阵数据的
因为在由数据转化为图像的过程中量化的时候丢失了信息

可以从得到的图像和所使用的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

温馨提示:内容为网友见解,仅供参考
无其他回答

matlab中imagesc函数得到图像,怎么还原?
如果得到图像的数据假设为变量im,应该是1个mxnx3的矩阵 m和n表示图像的像素,第三维大小为3,分别储存图像的r,g,b数据 又知道原来的画图所用的colormap,假设为变量map 那么可以用函数a= rgb2ind(im,map)这时候得到的a是一个整数矩阵 b=double(a).\/double(max(a(:)));这样得到的b是一个数...

matlab灰度图像却显示成彩色,如何还原为灰色>
在imagesc(i)后面加一句 colormap(gray)试试 colormap(gray)是用灰度颜色来代替当前使用的颜色盘,应该对任何图像都适合的,只要你想最终显示的图像是灰色图像

在Matlab中,怎样将imagesc生成的图像进行一定角度的旋转后再生成...
有个imrotate函数可以做图像旋转,你可以试一下。imrotate(A,angle)只能完成围绕图像中心的旋转,参数A是图像矩阵,参数angle是旋转角度(单位是度,逆时针为正,顺时针为负)

matlab 中imagesc画图是什么个意思
imagesc(A)将矩阵A中的元素数值按大小转化为不同颜色,并在坐标轴对应位置处以这种颜色染色。例如: A = magic(256); imagesc(A);A矩阵经过渲染后显示的图像如下图

matlab中imagesc命令纵坐标翻转
纵坐标用 set(gca,'YDir','reverse')不行,那是因为显示图像时,纵坐标本来就是翻转的,要想“再次翻转”,应该用 set(gca,'YDir','normal')

matlab的imshow函数显示图像后如何再利用
下面的代码是具有两个输入参数的 imagesc 函数显示一副灰度图像 imagesc(1,[0,1]); colormap(gray); imagesc 函数中的第二个参数确定灰度范围。灰度范围中的第一个值(通常是0),对应于颜色映象表中的第一个值(颜色),第二个值(通常是1)则对应与颜色映象表中的最后一个值(颜色)...

为什么我MATLAB 运行之后 图片变成这样 第二个是原图
你用了imagesc这个函数,把灰度深浅变成了不同的颜色;你用了rectangular函数,可以把图像的某一部分框起来。你用了text函数,在图片左上角标记了一段文字。

matlab画图问题,如何让imagesc和contour的纵坐标一致
用image系列绘图的坐标和普通绘图命令得到的坐标在纵轴方向是相反的,可以用axis命令手动设置坐标格式。axis xy就是普通的坐标格式。axis ij就是image系列的坐标格式。

matlab 中imagesc的用法
用image系列绘图的坐标和普通绘图命令得到的坐标在纵轴方向是相反的,可以用axis命令手动设置坐标格式。axis xy就是普通的坐标格式。axis ij就是image系列的坐标格式。imagesc 缩放数据并显示图像对象。使用方法编辑本段回目录 imagesc函数放大图像数据以覆盖当前色图的整个范围,并显示图片。1.imagesc(C)将...

matlab里imshow和imagesc两个函数有什么区别?
imshow与imagesc是MATLAB图像处理中常用的函数。imshow函数简单易用,可将任意矩阵显示为图像,尽管可能效果不佳。若矩阵为double类型且元素取值范围在[0,1],imshow认为其为图像,且默认以X-Y等距坐标轴显示正立图像。相比之下,imagesc设计用于满足更高显示需求。它不自动调整X-Y轴单位等长,也不自动识别...

相似回答