【发布时间】: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