【问题标题】:matlab rgb values dilemmamatlab rgb值困境
【发布时间】:2010-12-21 13:25:06
【问题描述】:

当我写这些命令时

out = ones(size(ben))
imshow(out)

输出是白色图片,但我希望图片几乎是黑色,因为 rgb 值为 1,1,1。当我给出 255,255,255 时,它也会给出一张白色的图片。这不是进退两难吗?

【问题讨论】:

    标签: matlab


    【解决方案1】:

    试试out = ones(size(ben), 'uint8');

    ones() 默认创建一个双精度数组。当imshow() 获得一个双精度数组时,它假定像素值介于 0 和 1 之间,并将白色分配给大于 1 的任何值。但是,如果将 uint8 数组传递给 imshow(),它将假定范围在 0 到 255 之间。

    您也可以尝试使用imagesc(); 代替imshow(),但您可能需要在病房后使用colormap gray 才能获得灰度图像。

    另一种选择是在显示之前重新缩放图像:

    imshow(out / max(out(:)));
    

    【讨论】:

    • 实际上,在 8 位图像中,值从 0 到 255。另外,要显示缩放图像,您可以调用 imshow(out,[])
    • 好点!我总是试图记住 Matlab 使用基于 1 的数组索引,我想这次我做得过火了...... :)
    猜你喜欢
    • 2012-04-03
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 2014-08-31
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    相关资源
    最近更新 更多