0

rgb2grayMatlabで使用して、RGB画像(double形式)を同じ形式のグレースケール画像に変換しました。次に、同じ画像をグレーからRGBに変換したいと思います。gray2rgbMatlabで使用しましたが、エラーが発生します。では、Matlabを使用してグレースケール画像をRGB画像に変換するにはどうすればよいでしょうか。

4

2 に答える 2

2

簡単な答え:できません。少なくとも完全ではありません。

ショーンが言うように、これはグレースケールに変換するときにいくつかの情報を落としたためです。言い換えれば、グレースケールからRGBに戻すことは、劣決定の逆問題であるため、簡単な解決策はありません。

今、これはあなたが試すことができないという意味ではありません。画像に事前情報がある場合は、残した情報に加えてそれを使用して、元のRGB画像の推定値を計算できます。

たとえば、元の画像が(RGBコンテナ内の)すでにグレースケールであることがわかっている(または想定している)場合は、プロセスを正確に逆にすることができます。これは、gray2rgbショーンが言及している機能が実行していることです。

これらのほとんどは開かれた問題であるため、おそらくあなたが望むものを超えています。

于 2013-01-30T16:12:49.117 に答える
1

申し訳ありませんが、それは不可能です。画像をグレースケールに変換することで、情報量を減らし(各ピクセルで3次元を1に減らします)、これを復元することはできません。

このrgb2gray関数はMatlabに含まれているものであり、正常に機能します。このgray2rgb関数は標準のMatlab関数ではありません。Matlab Centralでこの関数を参照している場合、ドキュメントには、有用なことは何も行わず、1D行列から3D行列を作成するだけであると記載されています。画像は引き続きグレースケールになります。

于 2013-01-30T13:47:02.143 に答える