imagesc将背景颜色更改为白色matlab

时间:2012-11-12 06:13:00

标签: matlab

我有一个150 x 150的过滤器当使用imagesc绘制过滤器时,背景为绿色

minValue = -1.5; maxValue = +1.5;

图像中的零的RGB索引(绿色)是0.5,1,0.5

我想将图像中的所有索引'0'/背景颜色更改为白色,同时尽可能保留其余颜色。

尺寸(colormap):64 3

我尝试了以下操作,但它似乎不适用于我的图像: matlab's imagesc background color

非常感谢

1 个答案:

答案 0 :(得分:2)

这是我的解决方案。直方图图像强度,找到最接近零的那些,然后将其设置为白色。例如:

 m=peaks(100); % generate data
 imagesc(m);   

 colormap_range=64; % default colormap_range is 64, but change it to your needs
 [n,xout] =hist(m(:),colormap_range);   % hist intensities according to the colormap range
 [val ind]=sort(abs(xout)); % sort according to values closest to zero
 j = jet;
 j(ind(1),:) = [ 1 1 1 ]; % also see comment below
 % you can also use instead something like j(ind(1:whatever),:)=ones(whatever,3); 
 colormap(j);

而不是sort您可以使用min,但我认为通过排序您还可以使用其他行(例如j(ind(1:3),:)=ones(3);)编辑多个级别。下面的附图是用这个......

完成的

enter image description here