主要功能
- ITK:
Segmentation, Read in images, Write out images, Blah, Blah.... - VTK:
Show image on VTK window, Render 3D model, Blah... - Qt:
Gui, Blah... - OpenCV:
2D Image Processing, Read in 2D image, Write out 2D image, Show 2D image on OpenCV window, Blah...
主要架構
ITK +OpenCV <===> VTK + OpenCV <===> Qt + OpenCV
- 建立一個ITK和OpenCV專用的Class
負責最主要影像的處理
會回傳ITK image
會回傳OpenCV image - 建立專用VTK和OpenCV的Class
用來收ITK處理後及OpenCV處理後的影像
會送出VTK image和OpenCV image - 建立Qt的GUI,專門收VTK的影像和OpenCV的影像
VTK to Qt -> 藉由QVtkWidget顯示
OpenCV image to Qt Qimage -> 藉由一個轉換的method (在此) ,顯示在QLabel上
Programming Form User View to Programmer View
Class Q
- Using Library
Qt Library -----> Qt widget
VTK Library -----> QVtkWidget vtkEventQtSlotConnect
OpenCV Library -----> show QImage from cv::Mat - get VTK image
- get cv::Mat
- Show on QVtkWidget or QLabel
Class V
- Using Library
VTK Library
OpenCV Library
ITK Library - get ITK image
- send VTK image
- get and send cv::Mat
- CONVERT ITK image to VTK image
- For cv::Mat, this class is just a relay
Class I
- Using Library
ITK Library
OpenCV Library - produce and send ITK image
- produce and send cv::Mat
[Note : Only the OpenCV Library shows on every Class. It can be excluded if it is not needed.]
還有....
- 這三個Class可以在同一個方案下,但是在三個不同的專案中建立。
- 三個專案可以個別編譯,不互相影響,利用互相Linking的方式,可以加快編譯的時間,且Class的封裝性更佳!
沒有留言:
張貼留言