これを行う機能があることは理解していますが、ここで何が起こっているのかを正確に理解できるように、手動で行いたかったのです。
したがって、私の目標は、RGB イメージを読み込んでグレースケールに変換することです。これまでの画像処理作業はすべてグレースケール ベースのみだったので、少し戸惑いました。
私は最初に画像を読み込もうとしました
fid = fopen('color.raw');
myimage = imread(fid, [512 384], 'uint8');
fclose(fid);
しかし、 myimage は空の 0 x 0 行列になります。「R」「G」および「B」の値を各ピクセルに割り当てて、各ピクセルに 3 つの色の 3 つの値を割り当てる必要があると思いますが、それが正しいかどうか、またそれを試みる方法さえわかりません。
私の質問は次のとおりです。RGB 画像を読み取ってからグレースケール画像に変換するにはどうすればよいですか。
編集:RGとBの値を取得した後、RGBをグレースケールに変換する方法を理解していますが、Matlabに画像を読み込ませることができないようです。誰か助けてもらえますか? imread を使用するのが最も理にかなっているようですが、
[pathname] = ...
uigetfile({'*.raw';'*.mdl';'*.mat';'*.*'},'File Selector');
fid = fopen(pathname);
myimage = imread(fid);
fclose(fid);
fopenのファイル名が無効であるというエラーが表示されますが、その理由が本当にわかりません。