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