简介
对于计算机,数字灰度图像表示为整数矩阵,其中最大值(取决于整数精度)表示黑色,0表示白色。
这是一个图像的表示,对于整数,以及当转换为浮点数时。
int
array([[6, 1, 1, 0, 6, 4],
[0, 1, 2, 7, 5, 2],
[0, 4, 6, 6, 3, 4],
[1, 1, 2, 6, 7, 0],
[3, 6, 6, 5, 5, 3]])
float
array([[ 6., 1., 1., 0., 6., 4.],
[ 0., 1., 2., 7., 5., 2.],
[ 0., 4., 6., 6., 3., 4.],
[ 1., 1., 2., 6., 7., 0.],
[ 3., 6., 6., 5., 5., 3.]])
问题
我一直在使用svd,结果得到一个图像,其矩阵表示由浮点数组成。使用matplotlib中的imshow
打印得很好。
当灰度图像值浮动时,'亮度值'映射如何工作?
答案 0 :(得分:1)
根据http://www.weizmann.ac.il/matlab/toolbox/images/imshow.html
imshow(I,n)显示具有n个离散水平的强度图像I. 灰色。如果省略n,则imshow在24位显示器上使用256个灰度级, 或其他系统上的64个灰度级。
imshow(我,[低高])将I显示为灰度强度图像, 指定I的数据范围。值低(和任何值减去 低于)显示为黑色,值高(和任何值更大 比高)显示为白色,值显示为 中间色调的灰色。 imshow使用默认的灰色数 水平。如果对[low high]使用空矩阵([]),imshow使用 [min(I(:))max(I(:))]; I中的最小值显示为黑色,和 最大值显示为白色。
imshow(BW)显示二进制图像BW。值0显示为黑色, 和值1显示为白色。
所以这取决于你如何调用imshow()来解释图像的显示方式。如果你用[低,高]的空矩阵调用它,它将只使用数组中的最大值和最小值。
答案 1 :(得分:1)