ぼかしアルゴリズムについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
14142

ぼかしアルゴリズムについて

#1

投稿記事 by 14142 » 7年前

コードはまだ書いていない状態です。
アルゴリズムを考えている段階で恐縮ですが、ご意見頂けると幸いです。
C++かpythonで回答頂けると嬉しいです。

Photoshop で切り抜きを行なったとき「ぼかし」の範囲を
指定出来るのはご存知でしょうか?
あれを実装したいというのが私の質問です。

そこで私が実装しようと考えている方法は
画像は切り抜いてあり、切り抜きに含まれていない色のバック画像に
貼り付けられていると仮定します。
1、ラスタ走査でバック画像の色は白、それ以外の色は黒としたマスク画像を作る
2、そのマスク画像にエッジフィルタをかけて輪郭を出す
3、輪郭が残ったマスク画像を再びラスタ走査し、黒色の部分に対応する元画像の部分にあらかじめ決められた範囲(ピクセル数)で平滑化フィルタをかける

いかがでしょうか?
これで上手く実装出来そうでしょうか?
Photoshop はどうやっているのでしょうか?


たいちう
記事: 418
登録日時: 13年前

Re: ぼかしアルゴリズムについて

#3

投稿記事 by たいちう » 7年前

Photoshopがどうやっているのか判りませんが、
簡単な原理を考えてみました。
説明のため、円で切り抜き、背景色は白固定とします。
(方法が理解できたら応用もできるでしょう)

中心からの距離が100pxまではぼかしなし、
110pxでぼかし完了とします。

100pxの部分では、元の画像が100%、白が0%。
105pxの部分では、元の画像が50%、白が50%。
110pxの部分では、元の画像が0%、白が100%。

pixel単位でこのような処理は実装できますか?
もっと簡単に処理できるライブラリもあるかもしれませんが。

閉鎖

“C言語何でも質問掲示板” へ戻る