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

matlab中imagesc函数得到图像,怎么还原,第1张

理论上从图像是不能完全恢复出原来的矩阵数据的

因为在由数据转化为图像的过程中量化的时候丢失了信息

可以从得到的图像和所使用的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%还原矩阵了

压缩算法有好多种,你说的太笼统了。没有具体的算法, 程序怎么去写,如果简单压缩的话,matlab有很多自带的图像处理函数,你可以参考一下,比如采用小波变换或DCT变换,不同级数的小波变换采用不同的量化步长,然后小波反变换。要是要求不高的话,很简单,去找一下相关的函数,自己就能搞定,- -

inshow主要用于调用图像索引,比如:

imshow(X,map)

其功能等同于:

image(X)

colormap(map)

但是,inshow的功能要强大一些,比如用于灰度图像,RGB图像,二进制图像,都可以应用。

imagesc属于图像缩放函数

具体说一些例子:

要显示一副灰度图像,可以调用函数 imshow 或 imagesc (即

imagescale,图像缩放函数)

(1) imshow 函数显示灰度图像

使用 imshow(I) 或 使用明确指定的灰度级书目:imshow(I,32)

由于Matlab自动对灰度图像进行标度以适合调色板的范围,因而可以使用自定义

大小的调色板。其调用格式如下:

imshow(I,[low,high])

其中,low 和 high 分别为数据数组的最小值和最大值。

(2) imagesc 函数显示灰度图像

下面的代码是具有两个输入参数的 imagesc 函数显示一副灰度图像

imagesc(1,[0,1]);

colormap(gray);

imagesc 函数中的第二个参数确定灰度范围。灰度范围中的第一个值(通常是0),

对应于颜色映象表中的第一个值(颜色),第二个值(通常是1)则对应与颜色映象表

中的最后一个值(颜色)。灰度范围中间的值则线型对应与颜色映象表中剩余的值(颜色)。

在调用 imagesc 函数时,若只使用一个参数,可以用任意灰度范围显示图像。在该

调用方式下,数据矩阵中的最小值对应于颜色映象表中的第一个颜色值,数据矩阵中的最大

值对应于颜色映象表中的最后一个颜色值。

53 RGB 图像及其显示

(1) image(RGB)

不管RGB图像的类型是double浮点型,还是 uint8 或 uint16 无符号整数型,Matlab都

能通过 image 函数将其正确显示出来。

RGB8 = uint8(round(RGB64×255)); % 将 double 浮点型转换为 uint8 无符号整型

RGB64 = double(RGB8)/255; % 将 uint8 无符号整型转换为 double 浮点型

RGB16 = uint16(round(RGB64×65535)); % 将 double 浮点型转换为 uint16 无符号整型

RGB64 = double(RGB16)/65535; % 将 uint16 无符号整型转换为 double 浮点型

(2) imshow(RGB) 参数是一个 m×n×3 的数组

54 二进制图像及其显示

(1) imshow(BW)

在 Matlab 70 中,二进制图像是一个逻辑类,仅包括 0 和 1 两个数值。像素 0 显示

为黑色,像素 1 显示为白色。

显示时,也可通过NOT(~)命令,对二进制图象进行取反,使数值 0 显示为白色;1 显示

为黑色。

例如: imshow(~BW)

(2) 此外,还可以使用一个调色板显示一副二进制图像。如果图形是 uint8 数据类型,

则数值 0 显示为调色板的第一个颜色,数值 1 显示为第二个颜色。

例如: imshow(BW,[1 0 0;0 0 1])

以上就是关于matlab中imagesc函数得到图像,怎么还原全部的内容,包括:matlab中imagesc函数得到图像,怎么还原、图像压缩还原 matlab或者c++或者c、matlab 怎样由像素值恢复图像,就是说衣服图像的像素值已知的话,怎样用imshow函数显示出图像来呢谢谢…等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10053669.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存