2016-07-12 1 views
0

私はPythonで私の畳み込みアルゴリズムで遊んでいたと私はの配列に沿ってフィルタをスライドさせると、その中のエントリを更新しながら、結果はかなり暗い出てきたことに気づい:畳み込みの結果を格納するために全く新しい配列を作成する必要がありますか?

enter image description here

私が作成した場合、一方まったく新しい配列で、元のレベルに似たレベルで出てきました。

enter image description here

私の愚かな質問 - 後者は(私はそれは推測している)このアルゴリズムを記述するための正しい方法ですか?私はこのアルゴリズムを書くことができますので、別の配列全体を初期化してメモリを邪魔する必要はなく、むしろ元の配列に結果を格納する必要はありません。 ?

答えて

4

結果を格納するために2番目の配列を使用する必要があります。それ以外の場合は、すでに画像に含まれていた元のピクセルではなく、を既に変更したピクセルの計算結果を基にしています。そういうわけで、あなたの最初の例が期待以上に変わるのです。

技術的には、スレッドを使用して2番目の配列なしで行うことができます。あなたはピクセルを持っているだけの数のスレッドを持つ必要があります。次に、各スレッドは1つのピクセルを計算し、イメージに戻します。ただし、2番目の配列を使用するよりもさらに多くのメモリが必要になります。計算に必要なピクセルを変更しないように、注意深く同期をとる必要があります。また、それは遅くなるだろう。