4

ここに画像の説明を入力

私はこの写真をきれいにする必要があります.

画像処理コースの宿題の一部として、matlab 関数 ginput を使用して、画像内の特定のポイントを見つけることができます (もちろん、スクリプトでは、必要な座標をハードコーディングする必要があります)。

conv2、fft2、ifft2、fftshift などを使用できます。

中央値、平均、最大、最小、並べ替えなども使用できます。

私の基本的なアイデアは、画像の中央から白と黒の値を使用し、それらを黒と白のストリップの他の部分に挿入することでした. ただし、画像に非常に合成的な外観を与えます。

何をすべきか教えてください。メディアン フィルターでは良い結果が得られません。

4

4 に答える 4

2

そのようなことを行うための一般的な手法は、 Inpaintingと呼ばれます。しかし、そのためには、ペイントしたい領域のマスクが必要です。ですから、良いマスクを得ることができ、このマスクの形態学的拡張を考慮して元の画像を修復したとしましょう。

ここに画像の説明を入力 ここに画像の説明を入力

そのマスクを手に入れるために、特別なものは必要ありません。元の画像とそのメディアン フィルター処理の結果との差の 2 値化から始めます。

ここに画像の説明を入力

孤立したピクセルを削除できます。旗の星を表すピクセルを、水平方向の膨張とそれに続く小さな正方形による別の膨張の組み合わせによって結合します。この作成したばかりの最大のコンポーネントを削除します。次に、初期マスクに対してこれまでの結果で測地線膨張を実行します。これにより、上記の適切なマスクが得られます。

現在、修復には多くのアルゴリズムがありますが、私が見つけた最も単純なものの 1 つはFast Digital Image Inpaintingで説明されており、実装が十分に簡単なはずです。私はそれを使用しませんでしたが、どのような結果が得られるかを確認できました。

編集:あなたも画像を明るくしたかったのを見逃しました。

明るい領域をさらに明るくせずに画像を明るくする簡単な方法は、ガンマ係数 < 1 を適用することです。画像により具体的にするために、最初に比較的大きなローパス フィルターを適用し、それを無効にし、元の画像にガンマ係数を適用します。この 2 番目のケースでは、最終的なイメージは最初のイメージよりも暗くなる可能性が高いため、単純なスカラー値を掛けます。これら 2 つのケースの結果を次に示します (左のケースは単純にガンマ 0.6 です)。

ここに画像の説明を入力 ここに画像の説明を入力

画像を本当に明るくしたい場合は、バイラテラル フィルターを適用して 2 値化できます。

ここに画像の説明を入力

于 2013-01-12T17:30:34.773 に答える
1

テキストを削除する最も簡単な方法は、KlausCPH が言ったように、ストライプのある領域で長い 1-d メディアン フィルターを使用することです。星が破損しないようにするには、この部分のバックアップを保持し、メディアン フィルターの実行後に交換する必要があります。これを行うには、 を使用ginputして、星の部分の右下にマークを付けることができます。

% Mark lower right corner of star-region
figure();imagesc(Im);colormap(gray)
[xCorner,yCorner] = ginput(1);
close
xCorner = round(xCorner); yCorner = round(yCorner);

% Save star region
starBackup = Im(1:yCorner,1:xCorner);

% Clean up stripes
Im = medfilt2(Im,[1,50]);

% Replace star region
Im(1:yCorner,1:xCorner) = starBackup; 

これにより、 ここに画像の説明を入力

露出の問題 (中央部分が角よりも明るい) を修正するには、2 次元ガウス モデルを画像に当てはめ、正規化を行うことができます。これを行いたい場合は、 を調べることをお勧めしますが、fitこれまでにモデル フィッティングを行ったことがない場合、これは少し技術的である可能性があります。

私の見つけた 2-D ガウス分布は次のようになります。 ここに画像の説明を入力

これら 2 つのことをまとめると、次のようになります。 ここに画像の説明を入力

于 2013-01-12T18:00:31.997 に答える
1

「クリーンミー」を削除するための 2 つのオプションが表示されます。どちらも水平方向の類似性に依存しています。

1) 水平方向のみに長い 1D ローパス フィルターを使用します。

2) 長さ 10 ピクセル程度の 1D メディアン フィルターを使用する

もちろん、両方のソリューションで、星の部分を除外する必要があります。

明るさに関しては、ヒストグラムの均等化を試すことができます。しかし、それでは明るさのムラは治りません。イコライゼーション前のハイパスで修正できるかもしれません。

よろしく

于 2013-01-12T15:02:55.723 に答える
0

gausswin()関数を使用してgausを作成しました。マスク:

Pic_usa_g =  abs(1 - gausswin(  size(Pic_usa,2)  ));
Pic_usa_g = Pic_usa_g + 0.6;
Pic_usa_g = Pic_usa_g .* 2;
Pic_usa_g = Pic_usa_g';
C = repmat(Pic_usa_g, size(Pic_usa,1),1);

G_Mask

画像にマスクを掛けると、固定画像が得られます。

解像度

于 2013-01-15T12:20:17.287 に答える