問候所有,QImage的QT間期和多線程問題
請參閱圖像: http://i48.tinypic.com/316qb78.jpg
我們正在開發的應用程序,以從電子顯微鏡提取MRC圖像小區邊緣。
MRC文件格式存儲體積像素數據(http://en.wikipedia.org/wiki/Voxel),我們只需使用3D char數組(char ***)來加載和存儲來自MRC文件的數據(灰度值)。
如圖所示,有3個查看器分別顯示XY,YZ和ZX平面。 觀看者頂部的滾動條用於沿着一個軸更改圖像切片。
以下是我們在用戶更改滾動條位置時所執行的步驟。
1)獲得新的滾動值(該 是所選切片)
2)用於初步認識平面(YZ,XY或 ZX),產生(字符*切片;)陣列,用於 所選切片通過讀取3D字符 陣列(炭***)
3)創建一個新的QImage * (Format_RGB888),並設置像素通過讀取 '切片' 值 (使用 img-> setPixel(X ,y,c);)
4)這個新的QImage *繪製在 paintEvent()方法中。
我們將在一個單獨的線程中執行「邊緣檢測」的過程,因爲它是一個密集的process.During這個過程中,我們需要在上面繪製檢測曲線(組像素)以上的QImage *。(作爲圖層)。這意味着我們需要在QT線程之外調用drawPoint()方法。
這種情況下使用QImage的最佳方式是?
從另一個線程執行QT繪圖方法的最佳方法是什麼?
由於事先
但是請注意,當您在屏幕上繪製圖像時,只會顯示圖像的當前狀態...在圖像上繪製更多圖像不會改變屏幕上顯示的內容,除非您更新顯示圖像的小部件。幸運的是,信號/插槽或定時器將很容易解決。 – 2010-06-17 18:17:44