让我先说一下,我知道有些功能可以为我做这件事,但我想手动做,这样我就可以了解这里到底发生了什么。
所以我的目标是读取 RGB 图像并将其转换为灰度图像。到目前为止,我所有的图像处理工作都是基于灰度的,所以我有点迷茫。
我试图先读入图像
fid = fopen('color.raw');
myimage = imread(fid, [512 384], 'uint8');
fclose(fid);
但 myimage 最终是一个空的 0 x 0 矩阵。我想我需要为每个像素分配一个“R”“G”和“B”值,从而为每个像素提供三种颜色的三个值,但我不确定这是否正确,甚至如何尝试。
我的问题如下:我将如何读取 RGB 图像然后变成灰度图像。
编辑:所以我明白在获得 RG 和 B 值后如何将 RGB 转换为灰度,但我似乎无法让 Matlab 读取图像,有人可以提供任何帮助吗?使用 imread 似乎最有意义,但是
[pathname] = ...
uigetfile({'*.raw';'*.mdl';'*.mat';'*.*'},'File Selector');
fid = fopen(pathname);
myimage = imread(fid);
fclose(fid);
不工作,我收到 fopen 文件名无效的错误,我真的不明白为什么。