各位朋友,我看到其他朋友提的这个问题,对我现在的困惑帮助有非常非常大的帮助,但是我一直没找到这个算法,请大家帮助我一下!
要精确控制可以这样:
截的图试了试,第一档没用50做阈值而是用的150:效果这样
代码
% demo gray2rgb
pic=imread('test.jpg');
if size(pic,3)>1
pic=rgb2gray(pic);
end
newPicR=zeros(size(pic));
newPicG=zeros(size(pic));
newPicB=zeros(size(pic));
%
newPicB(pic<=150)=255;
%
newPicR(pic>150&pic<=240)=255;
newPicG(pic>150&pic<=240)=255;
%
newPicR(pic>240)=255;
%
newPic(:,:,1)=newPicR;
newPic(:,:,2)=newPicG;
newPic(:,:,3)=newPicB;
imshow(uint8(newPic))
当然要想要渐变且区分度明显的,建议自己构造渐变colormap
这个可以参考MATLAB里面的颜色
参考这个:https://blog.csdn.net/qq_60088512/article/details/121164338
这里面的RGB除以255就可以
function color_map = gray2color(heat_map)
%将灰度图像转换为彩色图像
cmap = jet;
sz = size(heat_map);
color_map = zeros(sz(1), sz(2), 3);
for i = 1:256
ind = find(heat_map == i-1);
[r,c] = ind2sub(sz, ind);
for j = 1:3
color_map(sub2ind([sz(1), sz(2), 3], r, c, j+zeros(size(r)))) = cmap(i, j);
end
end
end
————————————————
版权声明:本文为CSDN博主「脉望虫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36763031/article/details/120325368