首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Matlab中的白色二值图像

Matlab中的白色二值图像
EN

Stack Overflow用户
提问于 2012-10-07 21:41:15
回答 3查看 341关注 0票数 1

在Matlab中,

如果我这样做了:

代码语言:javascript
运行
复制
output = false(5, 5);
imshow(output);

它会显示一个黑色的正方形,而不是白色的二进制正方形图像。这有什么原因吗?我如何输出一个白色的二进制正方形?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-07 22:02:43

原因是false映射到0,而true映射到1。此外,在显示图像时,数字越大,强度越高。白色比黑色有更强的强度。

另一种思考方式是,通常你有256个值- 0-2550是全黑的,而255是全白的。现在,假设你对两种颜色进行了量化。现在很明显,0应该是黑色的。

要显示白色正方形,请使用

代码语言:javascript
运行
复制
  output = true(5,5)
票数 2
EN

Stack Overflow用户

发布于 2012-10-07 22:26:52

你可以用不补语

代码语言:javascript
运行
复制
imshow(imcomplement(false(5, 5)))

或者修改默认的颜色映射(引用imshow的文档)

代码语言:javascript
运行
复制
imshow(X,map) 

显示带有颜色映射表的索引图像X。色彩映射表矩阵可以有任意数量的行,但它必须恰好有3列。每一行都被解释为一种颜色,第一个元素指定红光的强度,第二个元素指定绿色,第三个元素指定蓝色。可以在0.0到1.0的范围内指定颜色强度。

票数 1
EN

Stack Overflow用户

发布于 2012-10-07 23:29:05

您还可以更改图形的colormap,以定制MATLAB将值映射到颜色的方式:

代码语言:javascript
运行
复制
BW = [false,true;true,false];
imshow(BW)
set(gcf, 'Colormap',[1,1,1;0,0,0])

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

https://stackoverflow.com/questions/12769337

复制
相关文章

相似问题

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