在Matlab中,
如果我这样做:
output = false(5, 5);
imshow(output);
它会显示一个黑色方块而不是白色二进制方形图像。这有什么理由吗?如何输出白色二进制正方形?
答案 0 :(得分:2)
原因是false
映射到0
,true
映射到1
。
此外,当显示图像时,更高的强度显示更高的数字。白色的强度大于黑色。
考虑它的另一种方法是,通常你有256个值 - 0-255
。 0
完全是黑色,255
完全是白色。现在,假设您对两种颜色进行量化。现在很明显0
应该是黑色的。
为了显示白色方块,请使用
output = true(5,5)
答案 1 :(得分:1)
你可以使用imcomplement
imshow(imcomplement(false(5, 5)))
或修改默认颜色映射(引用imshow的文档)
imshow(X,map)
使用色彩映射图显示索引图像X.颜色映射矩阵可以具有任意数量的行,但它必须具有正好3列。每行被解释为一种颜色,第一个元素指定红光强度,第二个绿色和第三个蓝色。可以在0.0到1.0的间隔内指定颜色强度。
答案 2 :(得分:1)
您还可以更改图形的colormap以自定义MATLAB如何将值映射到颜色:
BW = [false,true;true,false];
imshow(BW)
set(gcf, 'Colormap',[1,1,1;0,0,0])