从命令行更改显示的像素值范围?

时间:2015-03-04 10:47:54

标签: image matlab processing

我正在使用Matlab 2014b中的一些MRI数据,但数据是由强度值而不是RGB组成的。为了解决这个问题,我使用下面的代码从MRI帧中形成一部电影(我在这里处理动态数据)

我的问题是图像需要更改像素的显示值,因为默认只显示在-Inf和Inf之间,我需要在0到0.25之间才能从我的数据中获得合理的图像。

有没有办法将该更改从脚本传递到电影,然后写入文件?我似乎只能在implay中为每个图像执行此操作,并且我想要一种自动编辑每个图像的方式,然后将其存储为电影的帧...?

%Code for producing movie.

graymap = gray(256);

for i = 1:32
    a(:,:,i) = cmunique(Reformed_Data_Colourmap(:,:,i));
end

for i = 1:32
    b = im2frame(a(:,:,i),graymap);

    a(:,:,1) = ((b.cdata));

    image(a(:,:,1))

    colormap 'gray'

%The change needs to be here, to display pixel values from 0 to 0.25, to allow for a sensible image from the MR data.

    frames(1,i) = getframe;

end

movie(frames)

1 个答案:

答案 0 :(得分:0)

提供解决方案:

for i = 1:32

b = im2frame(a(:,:,i),graymap);
a(:,:,1) = ((b.cdata));

clims = [0 250];

%image(a(:,:,1),clims)
colormap 'gray'

imagesc(a(:,:,1),clims);

%set('window', [0 400])
frames(1,i) = getframe;
end

攀登解决了这个问题。