我有一个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
非常感谢
答案 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);
)编辑多个级别。下面的附图是用这个......