コードはまだ書いていない状態です。
アルゴリズムを考えている段階で恐縮ですが、ご意見頂けると幸いです。
C++かpythonで回答頂けると嬉しいです。
Photoshop で切り抜きを行なったとき「ぼかし」の範囲を
指定出来るのはご存知でしょうか?
あれを実装したいというのが私の質問です。
そこで私が実装しようと考えている方法は
画像は切り抜いてあり、切り抜きに含まれていない色のバック画像に
貼り付けられていると仮定します。
1、ラスタ走査でバック画像の色は白、それ以外の色は黒としたマスク画像を作る
2、そのマスク画像にエッジフィルタをかけて輪郭を出す
3、輪郭が残ったマスク画像を再びラスタ走査し、黒色の部分に対応する元画像の部分にあらかじめ決められた範囲(ピクセル数)で平滑化フィルタをかける
いかがでしょうか?
これで上手く実装出来そうでしょうか?
Photoshop はどうやっているのでしょうか?
ぼかしアルゴリズムについて
Re: ぼかしアルゴリズムについて
Photoshopがどうやっているのか判りませんが、
簡単な原理を考えてみました。
説明のため、円で切り抜き、背景色は白固定とします。
(方法が理解できたら応用もできるでしょう)
中心からの距離が100pxまではぼかしなし、
110pxでぼかし完了とします。
100pxの部分では、元の画像が100%、白が0%。
105pxの部分では、元の画像が50%、白が50%。
110pxの部分では、元の画像が0%、白が100%。
pixel単位でこのような処理は実装できますか?
もっと簡単に処理できるライブラリもあるかもしれませんが。
簡単な原理を考えてみました。
説明のため、円で切り抜き、背景色は白固定とします。
(方法が理解できたら応用もできるでしょう)
中心からの距離が100pxまではぼかしなし、
110pxでぼかし完了とします。
100pxの部分では、元の画像が100%、白が0%。
105pxの部分では、元の画像が50%、白が50%。
110pxの部分では、元の画像が0%、白が100%。
pixel単位でこのような処理は実装できますか?
もっと簡単に処理できるライブラリもあるかもしれませんが。