use*_*729 10 rgb matlab image matrix grayscale
rgbImage = grayImage / max(max(grayImage));
Run Code Online (Sandbox Code Playgroud)
要么
rgbImage = grayImage / 255;
Run Code Online (Sandbox Code Playgroud)
以上哪项是正确的,还有原因?
gno*_*ice 23
double
数据类型时,图像像素值应为0到1范围内的浮点数.当存储为uint8
数据类型时,图像像素值应为0到255范围内的整数.您可以检查使用该函数的图像矩阵的数据类型class
.以下是您可能遇到的3种典型情况:
要将灰度图像uint8
或double
灰度图像转换为相同数据类型的RGB图像,可以使用以下函数repmat
或cat
:
rgbImage = repmat(grayImage,[1 1 3]);
rgbImage = cat(3,grayImage,grayImage,grayImage);
Run Code Online (Sandbox Code Playgroud)要将uint8
灰度图像转换为double
RGB图像,您应该转换为double
第一个,然后按比例缩放255:
rgbImage = repmat(double(grayImage)./255,[1 1 3]);
Run Code Online (Sandbox Code Playgroud)要将double
灰度图像转换为uint8
RGB图像,您应首先缩放255,然后转换为uint8
:
rgbImage = repmat(uint8(255.*grayImage),[1 1 3]);
Run Code Online (Sandbox Code Playgroud)