1

特定の画像に画像をオーバーレイしたい。この写真を配置できる領域のあるマスクを作成しました。

ImageShack.usがホストする画像http://img560.imageshack.us/img560/1381/roih.jpg

問題は、白い領域に黒い領域が含まれているため、オブジェクトを配置できないことです。

サブイメージを配置する必要がある場所を効率的に計算するにはどうすればよいですか?私はのようないくつかの関数について知っていますPointPolygonTest。しかし、それは非常に時間がかかります。

編集:

オーバーレイ画像は、白い場所のどこかに配置する必要があります。たとえば、青い長方形からの場所。

ImageShack.usがホストする画像http://img513.imageshack.us/img513/5756/roi2d.jpg

4

1 に答える 1

1

私の理解が正しければ、マスク内の完全に白い領域 (画像と同じ大きさ) に画像を配置したいと考えています。

この場合、有効な領域を取得するために、挿入する画像と同じサイズのカーネルを使用してマスクに侵食を適用します。侵食後、すべての有効な領域は白になります。

ただし、表示されている画像には、完全に白い200 * 200の領域がないため、誤解したに違いありません...

ただし、マスク内の黒が最も少ない領域を計算する場合は、侵食の代わりにぼかしを適用し、ぼかしたマスクで最大強度のピクセルを探すことができます。

どちらの場合も、浸食/ぼやけマスクの最大強度ピクセルの位置にその中心がくるようにサブイメージを挿入します。

編集:

黒いピクセルから最も離れた領域を見つけてサブイメージを配置することに関心がある場合は、その中心をマスクの距離変換の最大値として定義できます。

幸運を、

于 2012-08-04T21:30:44.377 に答える