rgb2gray
Matlabで使用して、RGB画像(double形式)を同じ形式のグレースケール画像に変換しました。次に、同じ画像をグレーからRGBに変換したいと思います。gray2rgb
Matlabで使用しましたが、エラーが発生します。では、Matlabを使用してグレースケール画像をRGB画像に変換するにはどうすればよいでしょうか。
2 に答える
簡単な答え:できません。少なくとも完全ではありません。
ショーンが言うように、これはグレースケールに変換するときにいくつかの情報を落としたためです。言い換えれば、グレースケールからRGBに戻すことは、劣決定の逆問題であるため、簡単な解決策はありません。
今、これはあなたが試すことができないという意味ではありません。画像に事前情報がある場合は、残した情報に加えてそれを使用して、元のRGB画像の推定値を計算できます。
たとえば、元の画像が(RGBコンテナ内の)すでにグレースケールであることがわかっている(または想定している)場合は、プロセスを正確に逆にすることができます。これは、gray2rgb
ショーンが言及している機能が実行していることです。
これらのほとんどは開かれた問題であるため、おそらくあなたが望むものを超えています。
申し訳ありませんが、それは不可能です。画像をグレースケールに変換することで、情報量を減らし(各ピクセルで3次元を1に減らします)、これを復元することはできません。
このrgb2gray
関数はMatlabに含まれているものであり、正常に機能します。このgray2rgb
関数は標準のMatlab関数ではありません。Matlab Centralでこの関数を参照している場合、ドキュメントには、有用なことは何も行わず、1D行列から3D行列を作成するだけであると記載されています。画像は引き続きグレースケールになります。