[解決済み] 画像の白背景を除去して透明にする
2023-06-15 03:13:56
質問
Mathematica で次のようなことをしようとしています. RMagickは画像から白い背景を取り除き、透明にします。 .
しかし、実際の写真では見栄えが悪くなってしまいます(画像の周りに後光が差しているような)。
これまで試してきたのは、こんな感じです。
unground0[img_] := With[{mask = ChanVeseBinarize[img, TargetColor->{1.,1.,1.}]},
Rasterize[SetAlphaChannel[img, ImageApply[1-#&, mask]], Background->None]]]
以下はその例です。
元画像です。
白の背景を無背景に置き換えた画像(ここではデモのため、ピンクの背景)。
このハローを取り除くためのアイデアはありますか?LevelPenalty のようなものを微調整して、私は画像の一部を失うことを犠牲にしてのみ、ハローを消すことができます。
EDIT: 懸賞金のためのソリューションを比較できるように、あなたのソリューションを上記のように構成してください、すなわち、画像を受け取り、透明な背景を持つ画像を返す unground-something という自己完結型の関数です。
どのように解決するのですか?
必要なエッジ品質によって異なります。
img = Import@"http://i.stack.imgur.com/k7E1F.png";
mask = ChanVeseBinarize[img, TargetColor -> {1., 1., 1.}, "LengthPenalty" -> 10]
mask1 = Blur[Erosion[ColorNegate[mask], 2], 5]
Rasterize[SetAlphaChannel[img, mask1], Background -> None]
<イグ
編集
img2 = Import@"http://i.stack.imgur.com/k7E1F.png";
(*key point:scale up image to smooth the edges*)
img = ImageResize[img2, 4 ImageDimensions[img2]];
mask = ChanVeseBinarize[img, TargetColor -> {1., 1., 1.}, "LengthPenalty" -> 10];
mask1 = Blur[Erosion[ColorNegate[mask], 8], 10];
f[col_] := Rasterize[SetAlphaChannel[img, mask1], Background -> col,
ImageSize -> ImageDimensions@img2]
GraphicsGrid[{{f@Red, f@Blue, f@Green}}]
クリックで拡大
編集2
の程度を把握するために、一応 ハロー と背景の欠陥の程度を知ることができます。
img = Import@"http://i.stack.imgur.com/k7E1F.png";
Join[{img}, MapThread[Binarize, {ColorSeparate[img, "HSB"], {.01, .01, .99}}]]
<イグ
ColorNegate@ImageAdd[EntropyFilter[img, 1] // ImageAdjust, ColorNegate@img]
<イグ
関連
-
[解決済み] ピンクの背景のアイコンを透明にするには?
-
[解決済み] RGBAカラーをRGBに変換する
-
[解決済み] IMGとCSSのbackground-imageはいつ使い分ける?
-
[解決済み] CSSによる画像の強制リサイズとアスペクト比の保持
-
[解決済み】アプリの背景画像を繰り返し表示させる方法
-
[解決済み] HTML5 アップロード前に画像をプリリサイズする
-
[解決済み] OpenCVで画像の類似性をチェックする
-
[解決済み] 背景を透明にする方法を教えてください。[クローズド]
-
[解決済み] なぜエラーが発生するのですか?「JPEGファイルではありません: 0x89 0x50で始まります" [閉じる]
-
[解決済み] ImageMagickで画像のサイズを一括変更し、新しいフォルダに出力する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 8bit PNGと32bit PNGの違い?
-
[解決済み] imagescがカラーマップを変更する理由 (MATLAB)
-
[解決済み] サブフィギュアの垂直アライメント LATEX
-
[解決済み] Goで生成されたアニメーションGIFがウィンドウズで動かない
-
[解決済み] RGBAカラーをRGBに変換する
-
[解決済み】CSS3 回転アニメーション
-
[解決済み] [Solved] How do you stretch an image to fill a <div> while keeping the image's aspect-ratio?
-
[解決済み】PNG vs. GIF vs. JPEG vs. SVGの異なるユースケースとは?[クローズド]
-
[解決済み] knitr for markdownを使用してローカルイメージのサイズを設定する方法は?
-
[解決済み] 背景を透明にする方法を教えてください。[クローズド]