0

私は、OpenCL カーネル (画像フィルターを表す) と画像を取り込み、そのフィルターを適用して出力画像を生成する PyOpenCL プログラムに取り組んできました。問題は、このプログラムを任意のサイズのイメージで実行する必要があることです。

Cloo (http://sourceforge.net/projects/cloo/) フレームワークを使用して C# と OpenCL で同様のプログラムを作成したことがありますが、より移植性の高いものを作成したいと考えていました (Cloo フレームワークは Linux で適切に実行できないため)。 )。

ここで、私の C# 実装では、単純にイメージをチャンクに分割し、各チャンクでカーネルを実行しました。これは、カーネルで画像をプレーンなバイト配列として処理することで実現しました。ただし、私が今抱えている問題は、PyOpenCL 実装で image2d_t データ型を使用しようとしているということです。画像をチャンクに分割してカーネルに渡す方法がわかりません。

image2d_t クラスは、返された画像にパディングを追加しますか (後処理する必要があります)、またはおそらくこれを処理する何らかの自動化された方法論をサポートしていますか?

私を正しい方向に向けるリソースは大歓迎です!

編集:これを行う理由は、現在のビルドでメモリ割り当ての例外が発生したためであることに言及する必要があると考えました(画像が大きすぎるため)。

4

1 に答える 1

0

Python Imaging Library のクロップ アンド ペースト機能を使用して画像を分割し、サブ画像を処理し、処理後にそれらを出力画像に置き換えることで、なんとか回避できました。

于 2013-01-23T18:19:01.983 に答える