matlab让一个点变为指定颜色,image – Matlab色彩映射 – 如何只更改一个特定值,而不是一系列值?...

解决此问题的一种方法是使用所需的颜色映射对图像进行实际编码,然后使用逻辑索引将原始图像中的每个位置设置为最终结果中的0到白色.

因此,给定2D图像,实际创建一个版本,使用ind2rgb映射到喷射颜色映射.之后,在原始图像中搜索0值,然后将最终颜色结果中的这些位置设置为白色.你问题的最后一点非常有意义.如果您的值介于这么小的范围之间,然后值也为0,则最终颜色映射中的颜色将偏向颜色映射的最末端.因此,我可以建议的另一件事是将原始图像的原始图像的值设置为非零范围内的值,以使其不会使颜色映射饱和.一旦您最终使用建议的颜色映射转换图像,我们就可以手动将这些像素设置为白色.

假设您的图像存储在im中,请执行以下操作:

cmap = colormap('jet'); % standard 64 colors jet colormap

cmap = flipud(cmap);

im2 = im;

ind = im == 0; %// Find locations that are zero in the original image

im2(ind) = max(im(:)); %// Make a copy of the original image where 0 pixels are set to the maximum of the image

rgb = ind2rgb(im2, cmap); %// Create pseudo-coloured image

rgb(repmat(ind, [1 1 3])) = 1; %// Set corresponding locations to white

如果您有图像处理工具箱,则可以使用imshow,也可以使用图像来显示结果(即imsh​​ow(rgb)或image(rgb)).

小建议

我建议你改变cmap = colormap(‘jet’);到cmap = jet;相反,因为如果你还没有一个打开的话,colormap(‘jet’)会产生一个空的数字窗口. cmap = jet;会给你相同的结果.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值