全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2369
推到 Plurk!
推到 Facebook!

ezdicom於C++Builder6 的使用方法

答題得分者是:leoace
falconsyc
一般會員


發表:2
回覆:3
積分:1
註冊:2010-11-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-11-25 14:18:34 IP:140.135.xxx.xxx 訂閱
 各位前輩好

我是BCB的新手,想製作一個開啟dicom圖片的程式
目前對於Explicit VR Little Endian 已經可以開出來
現在在嘗試 JPEG Lossless Image Compression 的顯示.
想請各位幫忙剛如何將此圖解出

我依照下篇的方法安裝了ezdicom
http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=82226
但不知道如何使用
希望有經驗的前輩可以幫忙解說
或是有範例可以參考
謝謝

我附上一個使用JPEG Lossless Image Compression 影像編碼的dicom檔

leoace
一般會員


發表:0
回覆:2
積分:5
註冊:2004-02-24

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-12-21 20:22:48 IP:134.106.xxx.xxx 訂閱
我用DCMTK幫你測一下,附檔DICOM檔少了 PhotometricInterpretation參數

dcm2pnm 4cedffbac0a3f_3DSlice1.dcm 1.bmp

E: can't change to unencapsulated representation for pixel data
E: can't determine 'PhotometricInterpretation' of decompressed image
E: mandatory attribute 'PhotometricInterpretation' is missing or can't be determined
F: Missing attribute
falconsyc
一般會員


發表:2
回覆:3
積分:1
註冊:2010-11-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-12-22 14:28:09 IP:60.251.xxx.xxx 訂閱
 前輩可以交教一下如何使用DCMTK嗎

我用 VS2008 想把它掛上去

可是一直不會用

能否有範例可以教導一下

謝謝

leoace
一般會員


發表:0
回覆:2
積分:5
註冊:2004-02-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-12-22 17:56:39 IP:134.106.xxx.xxx 訂閱

這裡說的是DCMTK 3.5.5的安裝
1.下載DCMTk與Supported libraries for Windows以及CMAKE
2.使用CMAKE將DCMTK跟Supported libraries轉成Visual Studio可用的lib檔
2.1.修改CMakeLists.txt library support: 修改路徑與開起library選項變成"ON". 常用的library: libxml, libpng, libtiff, OpenSSL, zlib
Ex:
# libxml support
OPTION(WITH_LIBXML "Build with libxml support." ON)
GET_FILENAME_COMPONENT(LIBXML_DIR "${dcmtk_SOURCE_DIR}/../libxml2-2.6.26" ABSOLUTE)
FIND_PATH(WITH_LIBXMLINC "include/libxml/parser.h" "${LIBXML_DIR}" NO_DEFAULT_PATH)
2.2.修改CMakeLists.txt, 設定CMAKE旗標將MT,MTd改成MD,MDd
Ex:
# set project wide flags for compiler and linker
# settings for Microsoft Visual C
IF(CMAKE_CXX_COMPILER MATCHES "CL|cl")
IF(NOT WITH_SHARED_LIBS)
IF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
SET(CMAKE_CXX_FLAGS "/nologo /W3 /GX /Gy /YX")
SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od")
SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2")
DCMTK 的設定中,預設是採用 "Multithreaded" runtime options (/MT and /MTd)但是Visual studio 2005以後的版本MFC只支援MD,MDd, 這個問題相信困擾DCMTK使用者好多年。講到這裡Microsoft真的很可惡,說改就改,過去MFC可以使用static link最後全部都要用dynamic link。這一改我想應該跑掉很多DCMTK的Windows使用者吧, 最後我幫OFFIS做了一個MD的版本問題才解決。
3.使用CMAKE來complie DCMKT變成Visual C 可用的library檔
CMAKE用來complie DCMKT可以參考此網頁http://blog.chinson.idv.tw/2008/07/dcmtk-for-visual-c-2005.html 不過他是3.5.4版本的。步驟差不多,可以忽略 步驟4.
4.設定DCMTK for Visual C
不同的設定為:
3. 在新專案中指定引用的相關程式庫檔案
(1) 從屬性對話盒左側選擇 "組態屬性" - "連結器" - "輸入"
(2) 在右側的 "其他相依性" 屬性中填入以下字串,注意各程式庫檔的順序必須要正確。
advapi32.lib oflog.lib netapi32.lib wsock32.lib ofstd.lib dcmdata.lib dcmimgle.lib dcmimage.lib ijg8.lib ijg12.lib ijg16.lib dcmjpeg.lib dcmnet.lib
dcmdsig.lib dcmsr.lib dcmtls.lib dcmpstat.lib dcmwlm.lib dcmqrdb.lib dcmtkeay_d.lib dcmtkssl_d.lib iconv_d.lib libtiff_d.lib libpng_d.lib libxml2_d.lib zlib_d.lib
如果是Debug選項就使用supported libraries裡面的lib檔 xxx_d.lib
如果是Release選項就使用supported libraries裡面的lib檔 xxx_o.lib
4. 指定新專案的執行階段程式庫(必須為/MD /MDd)
(1) 從屬性對話盒左側選擇 "組態屬性" - "一般"
(2) 在右側的 "MFC的使用" 選擇 "使用標準的視窗程式庫"
(3) 從屬性對話盒左側選擇 "組態屬性" - "C/C " - "程式碼產生"
(4) 在右側的 "執行階段程式庫" 選擇 "多執行緒DLL(/MD)" (for release 組態) 或 "多緒行緒偵錯DLL(/MDd)" (for debug 組態)
最後就可以在VS上面使用DCMTK了
PS: 我曾經想將DCMTK compile成Borland C 可用的版本,但是因為Borland complier一直沒有更新(1998年版本)以後也不會更新。
所以如果你想要改成Borland的版本,需要將DCMTK裡面的source code的寫法逐一的改成Borland complier可通過的寫法, 在用CMAKE來Complie。後來我放棄了.因為Linux上面的header檔有些並不會在Borland complier通過, 因此還要找到相對應的Header檔才行。另外還要在寫一個針對Borland Complier支援的Supported libraries
libxml, libpng, libtiff, OpenSSL, zlib 這些opensource並不是全部都能從CMAKE直接跨平台Compile成BCB可用, 要改的flag還蠻多的。網路的成功案例也沒有找到。
我的感覺就是Borland放棄了這塊市場,雖然已經被併購了。不過說真的台灣用BCB來開發醫療軟體真的還蠻多的。不曉得BCB還能撐多久。
編輯記錄
leoace 重新編輯於 2010-12-22 02:59:07, 註解 無‧
leoace 重新編輯於 2010-12-22 03:00:30, 註解 無‧
系統時間:2017-10-24 15:52:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!