在MATLAB中的RGB图像中,白色是否具有固定值(1 IMO)?
或者说,在MATLAB中的RGB图像中,白色是否具有固定值(1 IMO)?,matlab,image-manipulation,rgb,Matlab,Image Manipulation,Rgb,或者说,1是否表示RGB图像为白色 我有这个问题是因为这个答案: 有人能澄清一下吗?可以存储为。图像类型及其存储的数据类型将决定“白色”的构成: 矩阵(每个像素有一个数据值)可以是以下数据类型中的任意一种:uint8、uint16、int16、single或double。从文件中: 对于单一类的矩阵或 使用默认灰度加倍 颜色贴图,强度0表示 黑色,强度1表示 白色对于uint8类型的矩阵, uint16,或int16,强度 intmin(类(I))表示黑色和黑色 强度intmax(等级(I)
1
是否表示RGB图像为白色
我有这个问题是因为这个答案:
有人能澄清一下吗?可以存储为。图像类型及其存储的数据类型将决定“白色”的构成:
- 矩阵(每个像素有一个数据值)可以是以下数据类型中的任意一种:
、uint8
、uint16
、int16
或single
。从文件中: 对于double
或单一类的矩阵
颜色贴图,强度0表示 黑色,强度1表示 白色对于使用默认灰度加倍
类型的矩阵,uint8
,或uint16
,强度int16
表示黑色和黑色 强度intmin(类(I))
代表白色intmax(等级(I))
- 矩阵(每个像素有三个数据值:红色、绿色和蓝色)可以是以下数据类型中的任意一种:
、uint8
、uint16
或single
。从文件中: 在类double
或single
,每个颜色分量都是一个 值介于0和1之间。一个像素 颜色分量是(0,0,0)是 显示为黑色,且像素 颜色分量是(1,1,1)是 显示为白色double
- 矩阵(每个像素有一个数据值)可以是以下数据类型中的任意一种:
、uint8
、uint16
、int16
或single
。从文件中: 对于double
或单一类的矩阵
颜色贴图,强度0表示 黑色,强度1表示 白色对于使用默认灰度加倍
类型的矩阵,uint8
,或uint16
,强度int16
表示黑色和黑色 强度intmin(类(I))
代表白色intmax(等级(I))
- 矩阵(每个像素有三个数据值:红色、绿色和蓝色)可以是以下数据类型中的任意一种:
、uint8
、uint16
或single
。从文件中: 在类double
或single
,每个颜色分量都是一个 值介于0和1之间。一个像素 颜色分量是(0,0,0)是 显示为黑色,且像素 颜色分量是(1,1,1)是 显示为白色double
rgbImage=grayImage/255
是将灰度图像转换为double类型的RGB图像的正确解决方案吗?@user198729:不完全正确。我将为另一个问题添加一个答案。那么元素大于1
的double
矩阵实际上毫无意义?如果是这样,为什么double(灰度图像)
不会隐式/自动地按255
缩放结果,而是要求我们显式地按double(灰度图像)缩放结果/255
?@user198729:double矩阵的值可以大于1,但如果该矩阵被认为是图像数据矩阵,则当您将图像数据传递给它们时,大多数(如果不是所有)图像处理函数都会抛出错误/警告(因为他们希望double
类型的图像数据矩阵的值介于0和1之间)。转换为double不会自动缩放255,因为并非所有要转换为double的对象都是图像数据矩阵,所以您必须自己缩放。您提到了truecolor
,是否有falsecolor
?因此在我之前的帖子中,rgbImage=grayImage/255;
是正确的解决方案,而不是o将灰度图像转换为双精度RGB类型?@user198729:不完全正确。我将为另一个问题添加一个答案。那么元素大于1
的double
矩阵实际上什么都不是?如果是,为什么double(灰度图像)
不会隐式/自动地按255缩放结果,但要求我们显式地按double(灰度图像)缩放/255
?@user198729:double
矩阵的值可以大于1,但如果该矩阵被认为是图像数据矩阵,则当您将图像数据传递给它们时,大多数(如果不是所有)图像处理函数都会抛出错误/警告(因为他们希望double
类型的图像数据矩阵的值介于0和1之间)。转换为double不会自动缩放255,因为并非所有要转换为double的对象都是图像数据矩阵,因此您必须自己缩放。您提到了truecolor
,是否存在falsecolor
?