【问题标题】:Does white color has a fixed value(1 IMO) in an RGB image in MATLAB?白色在 MATLAB 的 RGB 图像中是否具有固定值(1 IMO)?
【发布时间】:2011-02-06 23:14:08
【问题描述】:

或者说1 表示 RGB 图像的白色?

因为这个答案,我有这个问题:

How to convert a grayscale matrix to an RGB matrix in MATLAB?

有人可以澄清一下吗?

【问题讨论】:

    标签: matlab image-manipulation rgb


    【解决方案1】:

    Image data in MATLAB 可以存储为different data types。图像的类型及其存储的数据类型将决定什么构成颜色“白色”:

    • grayscale image 矩阵(每个像素有一个数据值)可以是以下任何一种数据类型:uint8uint16int16singledouble。来自文档:

      对于single 类的矩阵或 double,使用默认灰度 colormap,强度0代表 黑色和强度1代表 白色的。对于uint8 类型的矩阵, uint16,或int16,强度 intmin(class(I)) 代表黑色和 强度intmax(class(I)) 代表白色。

    • RGB image 矩阵(每个像素具有三个数据值:红色、绿色和蓝色)可以是以下任何一种数据类型:uint8uint16singledouble .来自文档:

      single 类的真彩色数组中 或double,每个颜色分量是一个 介于 0 和 1 之间的值。一个像素,其 颜色分量是 (0,0,0) 是 显示为黑色,以及一个像素,其 颜色分量是 (1,1,1) 是 显示为白色。

    【讨论】:

    • 所以在我之前的帖子中,rgbImage = grayImage / 255; 是将灰度图像转换为双精度类型的 RGB 图像的正确解决方案?
    • @user198729:不完全是。我将添加另一个问题的答案。
    • 所以元素大于1double 矩阵实际上没有任何意义?如果是这样,为什么double(grayImage) 不会通过255 隐式/自动缩放结果,而是要求我们由double(grayImage)./255 明确执行?
    • @user198729:double 矩阵 可以 具有大于 1 的值,但如果该矩阵应该是 图像数据矩阵,那么当您将图像数据传递给它们时,大多数(如果不是全部)图像处理函数都会引发错误/警告(因为它们希望 double 类型的图像数据矩阵的值介于 0 和 1 之间)。转换为双精度并不会自动缩放 255,因为并非所有要转换为双精度的东西都是图像数据矩阵,因此您必须自己进行缩放。
    • 你提到了truecolor,有falsecolor吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 2020-09-02
    相关资源
    最近更新 更多