【问题标题】:How to convert RGB image to Luminance image and store the image as .raw file in Matlab如何将 RGB 图像转换为亮度图像并将图像存储为 Matlab 中的 .raw 文件
【发布时间】:2015-07-22 14:35:18
【问题描述】:

我正在尝试将 RGB 图像转换为亮度图像并将其保存为 .raw 图像以在其他软件中使用。我正在使用以下代码

m = imread('20x20-alpha1-1.jpg');
out = zeros(1942,2588);
for i=1:1942
   for j=1:2588
    out(i,j) = 0.2126*m(i,j,1) + 0.7152*m(i,j,2) + 0.0722*m(i,j,3);
   end
end
fileID = fopen('20x20-alpha1-1.raw');
fwrite(fileID,out);
fclose(fileID);

但是,当我尝试使用IrfanViewer 打开图像时,据说文件已损坏。我的代码有问题吗?如果是这样,我如何将此图像转换为亮度图像并保存? 谢谢你:)

【问题讨论】:

  • 您只是用fopen 编写值。这不是有效的原始图片格式。参见例如here
  • 您正在编写原始图像数据,这与编写 .raw 文件不同。后者在文件开头包含其他信息,例如分辨率。
  • 那么如何将 matlab 中的一个通道图像(亮度通道)存储在 .raw 文件中?
  • 您需要知道原始格式的规范。没有单一的原始格式
  • @BFMohtedi:你真正需要什么?要以无损格式导出数据,我会使用 TIFF

标签: image matlab rgb luminance


【解决方案1】:

在这种情况下,无需处理 .raw 文件。改为写一个 tiff 文件:

imwrite(out,'20x20-alpha1-1.tiff','tiff')

【讨论】:

  • 谢谢!像这样容易得多。但是,还需要进行另一项更改:out(i,j) = uint8(0.2126*m(i,j,1) + 0.7152*m(i,j,2) + 0.0722*m(i,j,3)) 以获得正确的输出
猜你喜欢
  • 2021-12-15
  • 2015-08-15
  • 1970-01-01
  • 1970-01-01
  • 2020-03-04
  • 1970-01-01
  • 2021-12-17
  • 2012-08-25
  • 2016-09-16
相关资源
最近更新 更多