首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab图像颜色分类

Matlab图像颜色分类
EN

Stack Overflow用户
提问于 2013-03-08 15:21:24
回答 1查看 1.4K关注 0票数 1

我有两张不同波段的不同卫星图像。我想看到的是像素之间的差异。为了实现这一点,我已经减去了这两个图像的值。结果,我得到了一个具有差异值​的新图像(对于带的情况)。我不知道这是否可能,但我会按颜色对这些值进行分类。例如,如果差值是从0到20,我希望像素将显示为蓝色,如果从30到40,则为绿色,如果大于40,则为红色。有可能做到这一点吗?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-08 15:57:15

代码语言:javascript
复制
img=rand(300,200)*256; // test image
image(img)
colorbar

将用默认的颜色映射表显示您的图像,正如您从颜色栏中看到的,它使用各种深浅的蓝色表示接近0的值,绿色表示接近120的值,红色表示最高值。

请注意,image使用一个值从0到255的矩阵作为参数,而默认的颜色映射包含64个条目,因此每个条目都将用于四个相邻的值。然而,色彩映射表也可以有256行。

只需重新定义色彩映射表,如下所示:

代码语言:javascript
复制
myMap = [repmat([0 0 1],20,1); ... %# blue for first 20 values
         repmat([0 1 0],20,1); ... %# green for next 20
         repmat([1 1 0.5],216,1)];  %# bright yellow for the rest
colormap(myMap); 

(假设您的图像值从0缩放到255。如果色彩映射表中的行数少于图像中的行数,则色彩映射表将被缩放,并且色彩条中的标签将与图像值不匹配。但是,您可以创建一个具有与图像中最高值(如果为<=255)相对应的行数的色彩映射表,以使其匹配。如果不确定,请参阅imagecolormap的帮助以了解详细信息。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15288756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档