0

現在、Irfanview を使用して、背景をバッチで置き換え、結果の画像をトリミングしています。次に、それらのサイズを変更してキャンバス化し、Web サイトで使用する適切な標準を取得します。

私は公差をいじって、白に近い背景をクリアな白に置き換えました。それらの約半分は問題なく処理されますが、背景に小さな斑点がある場合、トリミング ツールはメイン イメージの一部であるかのように反応しますが、そうではありません。許容範囲をさらに大きくすると、メインの画像で食い込んでしまい、公開するには十分な結果が得られません。

背景の置き換えを開始する前に、そのような斑点を最初に削除する回避策はありますか?

PS: 今はすべてオフラインでやっています。必要に応じて、これをオンラインに移行できます。その時点で、私が最もよく知っている言語である php を使用したいと思います。

ソース画像 (4752x3168、3.40 MB):ソース画像 http://veilinghuiseeckhout.be/test/img/TEST00001.JPG

現在の結果 (800x800、136kB):結果の画像 http://veilinghuiseeckhout.be/test/img/TEST00001res.JPG

望ましい結果 (800x800、394kB):望ましい画像 http://veilinghuiseeckhout.be/test/img/TEST00001want.jpg

4

1 に答える 1

1

Windows、OSX、Linuxなどで無料で利用できるものIrfanviewを使用する傾向があるため、わかりません。コマンドラインから簡単にスクリプトを作成することもできます。ImageMagick

いくつかのかなりのほこりの斑点があるので、私のアプローチは、画像を非常に大きくぼかし、純粋な白黒にしきい値を設定してから、トリミング座標を取得してから、ぼやけていないオリジナルをトリミングすることです. コマンド プロンプトでは次のように表示されます。

convert original.jpg -blur 0x8 -threshold 80% -format "%@" info:
1185x1157+1615+947

つまり... 「オリジナルを取り、それを大幅にぼかし、次に 80% 未満のすべての白を純粋な黒に、80% を超えるすべての白を純粋な白にしきい値処理します。次に、トリミングするふりをして、トリミングする場所を教えてください. "

答えはImageMagick、幅 1185 ピクセル、高さ 1157 ピクセルの四角形を、左マージンから 1615 ピクセル、上端から 947 ピクセルの位置からトリミングすることを意味します。

元の画像に赤でそれを描くと:

convert original.jpg -stroke red -fill none -draw "rectangle 1615,947 2799,2103" result.jpg

ここに画像の説明を入力

または、実際に切り取ることもできます。

convert original.jpg -crop 1185x1157+1615+947 result.jpg

ここに画像の説明を入力

私の Windows スキルは限られていますが、BAT ファイルでは、トリミングは次のようになります。

FOR /F %%G IN ('convert original.jpg -blur 0x8 -threshold 80%% -format "%%@" info:') DO SET GEOM=%%G
ECHO %GEOM%
convert original.jpg -crop %GEOM% result.jpg

別のオプションとして、高さと幅を 10 分の 1 または 20 分の 1 に減らして斑点を消し、切り取り四角形を取得してから同じ倍率で拡大し、元の画像に適用することもできます。

もう 1 つのオプションは、ImageMagick を使用して「連結成分分析」を行うことです。上記の回答が他の画像で機能するかどうかをお知らせください。そうでない場合は、他のアイデアを開発できます。

于 2015-12-26T23:19:13.323 に答える