2013-01-22 28 views
0

我一直工作在一個PyOpenCL程序,將採取在OpenCL內核(代表圖像過濾器)和圖像並應用所述過濾器,以生成輸出圖像。問題是我需要讓這個程序在任何大小的圖像上運行。我使用Cloo(http://sourceforge.net/projects/cloo/)框架編寫了一個類似的程序,但是我想讓一些東西更具可移植性(因爲Cloo框架失敗了)在Linux上正常運行)。我該如何處理OpenCL中的超大圖像?

現在,在我的C#實現,我只是分裂圖像成塊,並運行在每個塊的內核。我通過在我的內核中以純字節數組的形式處理圖像來實現這一點。然而,我現在遇到的問題是,我試圖在我的PyOpenCL實現中使用image2d_t數據類型,並且我不知道如何將圖像分塊並將其傳遞給內核。

是否image2d_t類添加填充到返回的圖像(即我需要進行後處理),或者它可能支持某種自動化的方法,將處理這個給我嗎?

會指出我在正確的方向的資源都非常感謝!

編輯:我想我應該提到,我想這樣做的原因是因爲我遇到內存分配異常與我目前的版本(因爲圖像太大)。

+0

多大「極大」? –

+0

某處在16000 x 9000或更大的範圍內。 – Switch

回答

0

我設法通過使用Python圖像庫的作物和粘貼功能來處理子圖像和處理後其更換成輸出圖像分割圖像起來解決它。