導航:首頁 > 源碼編譯 > dicom解析網頁源碼

dicom解析網頁源碼

發布時間:2022-05-11 13:12:12

A. 哪有DICOM 開發包(SDK)下載啊如題 謝謝了

[系統/軟體/源碼/控制項] DICOM 開發包(SDK) DICOM 是 Digital Imaging and Communications in Medicine的英文縮寫,即醫學數字成像和通信標准。是 ACR (American College of Radiology , 美國放射學會) 和 NEMA (National Electrical Manufactorers Association , 美國國家電子製造商協會) 為主制定的用於數字化醫學影像傳送、顯示與存儲的標准。在DICOM標准中詳細定義了影像及其相關信息的組成格式和交換方法,利用這個標准,人們可以在影像設備上建立一個介面來完成影像數據的輸入/輸出工作。DICOM標准以計算機網路的工業化標准為基礎,它能幫助更有效地在醫學影像設備之間傳輸交換數字影像,這些設備不僅包括CT、MR、核醫學和超聲檢查,而且還包括CR、膠片數字化系統、視頻採集系統和HIS/RIS信息管理系統等。 VIDI-WebPacsSDK包括完整的DICOM伺服器和WebDicomViewer.ocx,您可以輕松建立PACS系統。 WebPacs的SDK適用VB、VB.NET、VC++、DELPHI、C++ Builder、PB、WEB開發平台,風險投資小,可快速建立PACS系統的HTML。 控制項特點: 完全符合DICOM標准,採用DICOM協議,互聯網採用WADO協議 完全的PACS系統的功能。 包含WorkLIST(工作列表)功能 具有掃描圖像並轉換為DICOM標准格式功能。 具有接入其他圖像格式並轉換為DICOM標准格式功能 具有刻錄的CD / DVD功能。 具有關鍵圖標記功能。 支持Store SCP傳輸(DICOM文件接收) 支持Store SCU傳輸(DICOM文件發送) 支持Query/Retrive服務(DICOM查詢取回) DICOM標准列印協議 DicomVCL為16點陣圖像。 具有三維重建功能(容積再現,表面繪制和三維投影)。 視頻捕獲並轉換為DICOM標准格式 查看各類DICOM圖像 查看BMP、JPG圖像 對DICOM、BMP、JPG圖像進行窗寬/窗位調節 將DICOM圖像轉換成BMP、JPG或TIFF圖像 將BMP、JPG圖像轉換成DICOM圖像(支持灰度及RGB模式) 將多張BMP、JPG圖像轉換成一個多幀DICOM圖像 將非DICOM圖像轉換成DICOM圖像時可設置病人姓名、ID等參數 DICOM圖像支持測量操作(長度、角度、面積等) 支持圖像處理功能(反色、偽彩、翻轉、去噪、銳化等) 查看多幀DICOM圖像、可進行視頻播放 多幀DICOM圖像可進行圖像分布(多張圖像平鋪) 多幀DICOM圖像可直接轉換成AVI視頻文件 提供圖像流輸出(可直接將圖像放入Image控制項) 可將控制項放入HTML網頁中 WebDicomViewer ,可以讓您訪問互聯網DICOM標準的圖像。 詳細地址: http://bbs.hc3i.cn/thread-21247-1-13.html

希望採納

B. android 開發DICOM, 想要用dcmtk 怎麼編譯成jar

目前,比較流行的java反編譯工具有近30種,其中有三款堪稱精品:一、應用廣泛的JAD在眾多的JAVA反編譯工具中,有幾種非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:FrontEndPlus、mDeJava、DecafePro、CavajJavaDecompiler、DJJavaDecompiler、NMI』sJavaClassViewer和國產的JAVA源代碼反編譯專家。JAD本身是一個命令行工具,沒有圖形界面,上述的這些工具大多是在JAD內核的基礎之上加了一個圖形界面而已。這么多種產品的共同選擇,足可證明JAD在JAVA反編譯領域中的尊貴地位。JAD是使用MicrosoftVisualC++開發的,運行速度非常快,可以處理很復雜的JAVA編譯文件。眾多的參數使JAD可以靈活應付多種加密手段,令反編譯的代碼更加優化和易讀。由於JAD參數太多,沒必要一一解釋,其中有幾個最常用的如下(以JAD1.5.8f版本為例):-d-用於指定輸出文件的目錄-s-輸出文件擴展名(默認為:.jad),通常都會把輸出文件擴展名直接指定為.java,以方便修改的重新編譯。-8-將Unicode字元轉換為ANSI字元串,如果輸出字元串是中文的話一定要加上這個參數才能正確顯示。最常用的反編譯指令如下所示:Jad–dc:\javasource–s.java-8javatest.class這條指令將當前目錄下的javatest.class反編譯為javatest.java並保存在c:\javasource目錄里,其中的提示輸出為中文,而不是Unicode代碼。二、源碼開放的JODEJODE是全球最大的開源項目網站Sourceforge.net的成員,在所有的JAVA反編譯器中,JODE的反編譯效果是最好的,尤其是對付一些常見的加密手段,例如混淆技術等,更是出類拔粹。JODE本身也是純JAVA開發的,最近越來越多的JAVA反編譯軟體也選擇JODE來做它們的核心引擎,例如JCavajJavaDecompiler、BTJ(BackToJava)、jEdit』sJavaInsightplugin等。JODE是一個可運行的JAR文件,在windows環境下雙擊即可運行。需要特別說明的是,JODE不是通過常規的Open->File的方式來載入JAVA編譯後的類文件(*.class)或是類包(*.jar)的,而是通過在Options菜單中的SetClasspath來實現的,單獨的類文件可以將它的上一級目錄作為Classpath輸入,然後再選擇ReloadClasspath即可。新加入的類包或是類的名字會在左側窗口出現,雙擊類包名可以目錄樹結構,雙擊需要反編譯的類名則在右上角的窗口中直接顯示反編譯後的源代碼。三、獨樹一幟的DAVADAVA不是一個獨立的JAVA反編譯器,而是JAVA代碼優化工具Soot的一部分。Soot和JODE一樣是純JAVA開發的,也是一個獨立的JAR包,但卻不能通過雙擊直接運行,而是象JAD一樣在命令行狀態運行。Soot對環境變數的配置要求非常嚴格,通常情況下要對CLASSPATH做如下設置:SetCLASSPATH=%CLASSPATH%;c:\sootdir\sootclasses-2.1.0.jar;.;其中的c:\sootdir\是下載的soot類包放置的路徑,CLASSPATH末尾的.;代表了當前目錄,如果不加上這個的話Soot經常會報一個找不到類的錯誤。DAVA是作為Soot的一個參數使用的,通常的用法如下:Javasoot.Main–fdava–dc:\javasourcejavatest注意最後的類名不用帶.class後綴,因為它默認是處理class文件,這個操作與前述的JAD的參數效果相同。DAVA採取了流程優化的方式進行反編譯,與傳統反編譯思路不盡相同,但卻對改變流程類的加密方法有獨特的反編譯效果。上述的三種工具各有千秋,但效果都非常不錯。經測試,它們基本上都可以把JDK自帶的一些常式完全反編譯,然後不加任何修改可再編譯成功,並能正常運行!

C. DICOM是什麼文件

醫療設備如CT和MRI的圖像保存格式,DICOM(Digital Imaging and Communications in Medicine)即醫學數字成像和通信,是醫學圖像和相關信息的國際標准。

DICOM格式數據可以用Amira等軟體讀取並進行三維展示。

D. 高分求C#編的解析DICOM的源代碼

雖然不太懂Dicom的專業知識, 但是Github上有一個開源的fo-dicom, 是C#的 可以了解下

E. 求DICOM轉換到BMP圖像的VB源代碼

16日 星期二 11:04 目的 探討DICOM圖像轉換成BMP圖像的方法,以便於對DICOM圖像進行讀取、處理、存貯。方法 分析DICOM圖像和BMP圖像文件格式,讀取DICOM圖像數據並進行加窗顯示、垂直鏡像變換,以BMP格式存儲。結果 此方法實現了DICOM圖像到BMP圖像的轉換。結論 多數的計算機沒有讀取DICOM圖像的軟體,轉換為BMP圖像後幾乎所有的計算機均可讀取圖像。

DICOM;BMP;加窗顯示

Translating from DICOM image into BMP imageWANG Shi-gang , LI Yue-qing , WANG Chang-yuan(Taishan Medical College, Taian 271000,China)

Abstract:Objective: To explore the method of translating the DICOM image into BMP one in order to read, process and memorize the DICOM image. Methods:The structures of DICOM image and BMP one were analyzed; the data of DICOM image were read with the window displayed; plumb mirror were transformed and memorized in the format of BMP image. Results: The DICOM image was translated into BMP one by this method. Conclusion: The majority of computers are not provided with the software that can read DICOM image, but almost any computers can read the translated image in the format of BMP.

Key words:DICOM; BMP; window display

醫學數字成像與通訊(digital imaging and communication in medicine,DICOM)標準的應用促進了醫學影像設備之間的互操作性,提供了一種用於醫學信息的開放性的數據交換標准,使得不同廠商生產的影像設備形成的圖像統一存檔與通訊成為可能,加快了圖像存檔與通訊系統(picture archiving and communication systems,PACS)的發展;但是大多數圖像處理軟體都不支持DICOM圖像文件格式,所以要處理DICOM圖像文件必然要對其進行格式轉換,而BMP格式圖像是應用最廣泛的一種圖像文件格式,且Windows操作系統帶有BMP圖像處理軟體——畫圖。因此,將DICOM圖像轉換成BMP圖像是非常必要的。

1 材料與方法

1.1 材料

勝利油田中心醫院somatom sensation 16CT DICOM圖像、Windows2000操作系統、Microsoft Visual C++ 6.0編程軟體。

1.2 方法

1.2.1 DICOM文件格式 DICOM圖像由文件信息頭和至少一個圖像數據集合組成。DICOM文件格式見圖1,其文件頭是可選的,其中前同步碼長128Bytes,沒有結構,不能作為數據元編碼,它的存在是為了提供一些通用計算機文件格式的兼容性,文件的說明信息應該放在前同步中,如文件的傳輸格式,生成該文件的應用程序等等。當一個文件被切割成多個部分(例如用多張盤存儲一個文件時),文件頭可以存放隨機訪問圖像所需要的信息。當文件頭沒有被使用時,它應該設為全零,即128Bytes的00H。前綴長4Bytes,為大寫字元「DICM」,可以根據該值來判斷一個文件是否為一個DICOM文件〔1~4〕。

圖1 DICOM文件格式

數據集合由數據元素組成,是數據元素的有序集合,它不僅包括醫學圖像數據,還包括許多和醫學圖像有關的信息,如病人姓名,圖像大小等等。數據元素由若干欄位組成:數據元素標簽(Data Element Tag)、數據值類型表述(value representation ,VR)、數據值長度、數據值體。

數據元素標簽,是一個16Bits無符號整數對按順序排列。前面是數據元素的組號,後面是數據元素號碼,數據元素是通過數據元素標簽唯一標志的,組號為偶數的是標准數據元素,DICOM的數據字典中有定義,如(0008,0020)表示研究日期,(7FE0,0010)表示像素數據;組號為奇數的為私有數據元素,由用戶在使用過程中自己定義,但在DICOM標准中對自己定義的數據元素也有詳細的規則說明。

數據值類型表述,是16Bits的字元串,指明該數據元素中的數據是那種類型的,用DICOM默認字元集編碼。如:一個數據元素的VR為DA,則表示該數據元素中存儲的數據為日期型數據。

數據值長度,是一個16Bits或32Bits(取決於顯示或隱式VR)無符號整數,表明准確的數據值體的長度,按位元組數目記錄。

數據值體,其長度為偶數位元組,存放了該數據元素的數值,該欄位的數據類型由數據元素的VR所確定。

1.2.2 BMP文件格式 BMP文件由四個部分組成:點陣圖文件頭(Bitmap-file)、點陣圖信息頭(Bitmap-information)、彩色表(Color Table)或調色板(Palette)、圖像數據陣列。〔5〕

點陣圖文件頭包含文件類型、文件大小、存放位置等信息,在Windows中用BITMAPFILEHEADER結構定義,這個結構的長度是固定的,為14Bytes;點陣圖信息頭BITMAPINFOHEADER也是一個長度固定的結構,為40Bytes;調色板是可選項,如果有調色板,則調色板實際上是一個數組,它建立了數組和顏色之間的對應關系,其個數為點陣圖使用的顏色數個元素,數組中每個元素的類型是一個RGB QUAD結構,佔4Bytes,定義如下:1Byte用於藍色分量,1Byte用於綠色分量,1Byte用於紅色分量,1Byte用於填充符(設置為0);圖像數據位於調色板之後。若沒有調色板,則在BITMAPINFOHEADER之後。

1.2.3 兩種圖像文件格式的不同 DICOM圖像與BMP圖像文件頭和數據結構都有很大差別,DICOM圖像除了有圖像大小、高度、寬度、每像素位元組數等普通圖像的必備信息外,還在數據集合的數據元素中存儲了大量醫療信息如病人姓名、年齡、醫院名、成像時間、檢查部位等。

兩種圖像的圖像數據陣列也有很大差異,DICOM圖像是按順序存儲的,陣列中的第一個位元組表示圖像左上角的像素,而最後一個位元組表示圖像右下角的像素;BMP圖像是由底向上存儲的,也就是說,陣列中的第一個位元組表示圖像左下角的像素,而最後一個位元組表示圖像右上角的像素,因此在圖像轉換中需要用到鏡像變換。

閱讀DICOM與BMP文獻,分析比較其圖像存儲格式,編程讀取DICOM圖像文件信息,進行鏡像變換和加窗顯示技術,寫入BMP文件以實現圖像格式的轉換。

1.2.4 鏡像變換 鏡像變換是醫學圖像處理的一種手段,分為水平鏡像變換、垂直鏡像變換、對角鏡像變換等。水平鏡像變換圖像以圖像鉛直中軸線為對稱軸進行列像素對調;垂直鏡像變換以圖像水平中軸線為對稱軸進行行像素對調,對角鏡像變換以圖像對角線為對稱軸進行像素對調。

1.2.5 加窗顯示技術 所謂加窗顯示是指通過一個窗口,將窗口區域的圖像線性地轉換到顯示器的最大顯示範圍內,高於或低於窗口上下限的圖像數據則分別設置為最高或最低的顯示值。這樣通過動態地調節窗口的窗寬(需顯示的圖像數據的范圍)和窗位(需顯示的圖像數據的中心值),則可以觀察醫學圖像的更多信息。〔6〕

1.2.6 圖像轉換過程 圖像轉換程序的流程圖如圖2所示,在圖2中,cb 表示圖像文件的大小,DICOM表示數組,Rows 表示圖像行數,Columns表示圖像列數, WC表示圖像窗位, WW表示圖像窗寬, PixData表示圖像數據的起始位置。

2 結 果

程序實現的圖像格式轉換的結果如圖3和圖4所示。

圖4便是由圖3轉換得到的圖像,此程序實現的功能並沒有讀取DICOM圖像患者本身的信息(如姓名、性別、年齡、等等)、掃描參數(如千伏、毫安、層厚、等等),只讀取了圖像的數據。

3 討 論

由於BMP圖像每一行的位元組數必須是4的整倍數,因此,在轉換時需補齊;另外,BMP文件的數據從下到上,從左到右的存放,因此,寫入BMP的像素需要做垂直鏡像變換處理。

在BMP圖像中,其存儲像素的藍、綠、紅3Bytes的值相等就構成了黑白灰階圖像,因此在顯示黑白灰階圖像時,這3Bytes只包含了1Byte的信息,從而BMP圖像只能包含256個灰度等級;而DICOM格式的圖像數據可以按8Bits、12Bits、16Bits或24Bits存儲,對於8Bits的數據可以直接按坐標位置填入BMP圖像中,對於其他三種情況則可通過加窗顯示技術使其轉換為8Bits的BMP圖像或再填充使藍、綠、紅3Bytes的值相等構成24Bits 的黑白灰階圖像。

勝利油田中心醫院somatom sensation 16CT DICOM圖像每一個像素佔2個Bytes,有效的是12Bits信息,即12Bits的黑白灰階圖像。圖3是初始的DICOM圖像,大小為514K,圖4是圖3轉換後的BMP圖像,大小為257K,大小為原圖像的一半,原因是DICOM圖像每一個像素佔2Bytes,而轉換後的BMP圖像每一個像素佔1Byte。

網上找的我是沒看懂希望對你有幫助。。

F. opencv下如何直接讀取dicom文件

您好,可參考:http://blog.csdn.net/songzitea/article/details/11096287,根據dicom的文件格式要求解讀,然後轉化為Mat數據,重載imread函數。可看看這個源碼:http://download.csdn.net/download/goodluckgg/2301575

G. dcm文件怎麼轉化成dicom

很多時候,我們在協助患者或家屬整理病歷資料時,都建議提供一份DICOM影像資料。但對於該資料,很多患者及家屬表示沒有聽說過或了解甚少,下面,厚朴方舟為大家介紹下DICOM是什麼,以及它對病情診斷的重要性。
什麼是DICOM
DICOM(Digital Imaging and Communications in Medicine)是一種國內外醫療機構用來管理、傳輸醫療影像資料和相關數據的通用協議,也是國際上通用的CT、MR、PETCT等的標准電子影像信息格式,就像pdf、TXT、JPG等。主要用於將影像資料進行:導出、儲存、分享、展示、傳輸、咨詢、檢索、列印等。對於在不同醫院間就醫扮演了至關重要的角色。
DICOM的重要性
通常我們在醫院做完CT、MR等檢查後會拿到膠片,而這份膠片就是由醫生從DICOM格式影像資料中,抽取出一部分,列印後製成的。
但原始的DICOM格式中儲存有大量的影像圖片,比如一次CT檢查,就可產生900多張DICOM格式影像資料,並且根據不同角度或位置,圖像被分類到了不同的序列中,通過滑鼠操作,醫生可以清楚地看到影像中病灶的大小、位置、形態,與周圍重要器官、血管、神經的關系等重要信息,這些信息會影響到對疾病和治療方式的判斷。
由於DCIOM的影像更多,信息更全面,就極大的避免了異常未發現、有問題部分未抽取等誤診、漏診情況的發生。因此,提供原始的DICOM影像資料給其他醫生進行二次診斷,就尤為重要。
DICOM獲取途徑
要想拿到DICOM影像資料,要注意與醫院的工作人員保持良好的溝通,還要找對人。根據經驗,可以咨詢以下醫務人員:
1. 主治醫師;
2. 影像科醫師或其他導診台等:通常醫院會直接在影像科室保存電子資料;
3. 信息科人員:部分醫院設有完備的信息科,用來管理全院的電子資料;
4. 醫院的行政管理人員等。 通常醫院會提供儲存有DICOM格式資料的光碟或者需要患者拿U盤去拷貝。
如何打開查看DICOM
給大家分享免費軟體里最快速和簡潔的一個,名叫RadiAnt DICOM Viewer的軟體。下載地址為https://www.radiantviewer.com。
下載完成後,安裝過程就和普通軟體一樣,按照提示完成所有操作就可以了。安裝完成後,桌面就會出現相應的軟體圖標。
雙擊打開該軟體後點擊文件夾圖標,就會出現讓你選擇文件夾的界面。比如你拷貝的DICOM格式圖像在U盤里,你就直接選擇整個U盤作為輸入文件夾就可以了,不需要特別精確的文件夾位置,因為軟體會自動搜索所選文件夾里的DICOM文件。
打開DICOM格式圖像後,就變成如下圖所示的界面。滑動滑鼠的滾輪,圖像就會上下層切換。
這個軟體的功能是非常強大,像病灶大小、密度測量,圖像三維重建等都可完成,由於此類功能對患者及家屬的用處不大,這里就不一一介紹了。
如何發給厚朴方舟
拿到DICOM後,需要將文件壓縮為RAR或者ZIP文件,通過郵箱中的超大附件發送至厚朴方舟專屬醫學顧問的郵箱。
如果不方便上傳,也可以直接通過快遞郵寄至我公司。
若您對於DICOM有更多信息想要了解,可聯系厚朴方舟。

H. 如何網頁中顯示DICOM圖像

轉換成jpg,gif等格式。即可

I. 醫學影像文件dcm格式用什麼軟體打開 在哪裡可以下載到.

ITK-SNAP,RadiAnt DICOM Viewer,3DMed都可以,在官方商店或第三方軟體中就可以下載。

醫學影像專用格式:.dcm

Dicom,常用於傳輸和存儲超聲波、CT、核磁、掃描等醫學圖像,需要分層保存,所以一般是專用軟體打開,PS只是客串了一下兼容。

通用文件格式:.pdf

通用文件格式支持圖層,蒙版,路徑,矢量圖形等分層編輯,類似PSD,兼容好。

生活常見輸出格式

1、列印機輸出格式:.eps

印前領域PostScript(列印機的一種程序代碼/語言方式)MAC機用得多,更適合用來輸出菲林產品。

2、過時代圖片格式:.pcx

支持壓縮,全彩,RGB,索引等,某一時代的王者,但隨著Windows時代的到來,逐漸被jpg/tiff等取代,不過用它來保存線畫搞圖也是可以的。

3、數碼相機專用格式:.raw

最大限度保留原始照片的細節,從而保留了更多調色空間,是專業攝影師的最愛,俗稱「數字底片」。

J. 本人圖像處理新人,求 Visual Studio 2010讀取 Dicom 圖片文件的代碼,最終要能顯示 Dicom 圖片!!!

structTagValue
{
unsignedshorttag1;
unsignedshorttag2;
};

voidmain()
{
boolisVR=true;
boolisLitteEndian=true;
intfile_length=0;
charVR[3];

unsignedintpixDataLen=0;
unsignedintpixDataOffset=0;
unsignedshortchannle=0;
unsignedshortrows=0;
unsignedshortcols=0;
unsignedshortdataLen=0;
unsignedshortvalidLen=0;

intwindowsWidth=0;
intwindowsCenter=0;

boolZeroIsBlack=true;
intRescaleSlope=0;
intRescaleIntercept=0;

FILE*fp;
fp=fopen("xxxx.dcm","rb");
if(fp==NULL)
{
printf("cannotopenfile!");
return;
}

fseek(fp,0,SEEK_END);
file_length=ftell(fp);
fseek(fp,0,SEEK_SET);

fseek(fp,128,SEEK_SET);

charheadchar[5];
memset(headchar,0,5);
intread_num=fread(headchar,1,4,fp);
if(read_num!=4)
{
fclose(fp);
return;
}

if(strcmp(headchar,"DICM"))
{
fclose(fp);
printf("FileisnotDICM");
return;
}

while(ftell(fp)+6<file_length)
{
TagValuetag;
unsignedintlen;
memset(VR,0,3);
fread(&tag,sizeof(TagValue),1,fp);
intindex=ftell(fp);

if(tag.tag1==0x02)
{
fread(VR,1,2,fp);
if(!strcmp(VR,"OB")||!strcmp(VR,"OW")||!strcmp(VR,"SQ"))
{
fseek(fp,2,SEEK_CUR);
fread(&len,sizeof(unsignedint),1,fp);
}
else
{
unsignedshortl;
intss=fread(&l,sizeof(unsignedshort),1,fp);
inta=ftell(fp);
len=(unsignedint)l;
}
}
elseif(tag.tag1==0xfffe)
{
if(tag.tag2==0xe000||tag.tag2==0xe00d||tag.tag2==0xe0dd)
{
fread(&len,sizeof(unsignedint),1,fp);
}
}
elseif(isVR==true)
{
fread(VR,1,2,fp);
inta=ftell(fp);
if(!strcmp(VR,"OB")||!strcmp(VR,"OW")||!strcmp(VR,"SQ"))
{
fseek(fp,2,SEEK_CUR);
fread(&len,sizeof(unsignedint),1,fp);
}
else
{
unsignedshortl;
l=sizeof(unsignedshort);
fread(&l,sizeof(unsignedshort),1,fp);
a=ftell(fp);
len=(unsignedint)l;
}
}
elseif(isVR==false)
{
fread(&len,sizeof(unsignedint),1,fp);
}

if(tag.tag1==0x02&&tag.tag2==0x10)
{
charmsg[124];
memset(msg,0,124);
fread(msg,1,len,fp);

if(!strcmp(msg,"1.2.840.10008.1.2.1"))
{
isLitteEndian=true;
isVR=true;
}
elseif(!strcmp(msg,"1.2.840.10008.1.2.2"))
{
isLitteEndian=false;
isVR=true;
}
elseif(!strcmp(msg,"1.2.840.10008.1.2"))
{
isLitteEndian=true;
isVR=false;
}
}
elseif(tag.tag1==0x7fe0&&tag.tag2==0x10)
{
pixDataLen=len;
pixDataOffset=ftell(fp);
fseek(fp,len,SEEK_CUR);

}
elseif(tag.tag1==0x28&&tag.tag2==0x10)
{
fread(&rows,sizeof(unsignedshort),1,fp);
}
elseif(tag.tag1==0x28&&tag.tag2==0x11)
{
fread(&cols,sizeof(unsignedshort),1,fp);
}
elseif(tag.tag1==0x28&&tag.tag2==0x02)
{
fread(&channle,sizeof(unsignedshort),1,fp);
}
elseif(tag.tag1==0x28&&tag.tag2==0x101)
{
fread(&validLen,sizeof(unsignedshort),1,fp);
}
elseif(tag.tag1==0x28&&tag.tag2==0x100)
{
fread(&dataLen,sizeof(unsignedshort),1,fp);
}
elseif(tag.tag1==0x28&&tag.tag2==0x1050)
{
charmsg[11];
memset(msg,0,11);
fread(msg,1,len,fp);
windowsCenter=atoi(msg);

}
elseif(tag.tag1==0x28,tag.tag2==0x1051)
{
//fseek(fp,len,SEEK_CUR);
charmsg[40];
memset(msg,0,40);
fread(msg,1,len,fp);
windowsWidth=atoi(msg);
}
elseif(tag.tag1==0x0028&&tag.tag2==0x0004)
{
charmsg[40];
memset(msg,0,40);
fread(msg,1,len,fp);
if(!strcmp(msg,"MONOCHROME1"))
{
ZeroIsBlack=false;
}
elseif(!strcmp(msg,"MONOCHROME2"))
{
ZeroIsBlack=true;
}
}
elseif(tag.tag1==0x0028&&tag.tag2==0x1052)
{
charmsg[40];
memset(msg,0,40);
fread(msg,1,len,fp);
RescaleIntercept=atoi(msg);
}
elseif(tag.tag1==0x0028&&tag.tag2==0x1053)
{
charmsg[40];
memset(msg,0,40);
fread(msg,1,len,fp);
RescaleSlope=atoi(msg);
}
else
{
charmsg[1024];
memset(msg,0,1024);
fread(msg,1,len,fp);


}
}

fseek(fp,pixDataOffset,SEEK_SET);
if(windowsCenter==0&&windowsWidth==0)
{
windowsWidth=1<<validLen;
windowsCenter=windowsWidth/2;
}

intmin_value,max_value;
min_value=windowsCenter-windowsWidth/2.0+0.5;
max_value=windowsCenter+windowsWidth/2.0+0.5;
doublepers=255.0/(max_value-min_value);

Matsrc;

if(channle==1)
{
src.create((int)rows,(int)cols,CV_8UC1);
for(inti=0;i<rows;i++)
{
for(intj=0;j<cols;j++)
{
short gray=0;
unsignedcharpix[2];
fread(pix,1,2,fp);
if(validLen<=8)
{
if(isLitteEndian)
{
gray=pix[0];
}
else
{
gray=pix[1];
}

}
else
{
if(isLitteEndian)
{
gray=*(short*)pix;
gray=gray/RescaleSlope+RescaleIntercept;
}
else
{
gray=pix[1]+pix[0]*256;
}

if(gray>0xff)
{
gray=gray;
}
if(gray<0)
{
gray=gray;
}
}

if(!ZeroIsBlack)
{
gray=255-gray;
}

src.at<uchar>(i,j)=gray;

}
}

}
elseif(channle==3)
{
src.create((int)rows,(int)cols,CV_8UC3);
for(inti=0;i<rows;i++)
{
for(intj=0;j<cols;j++)
{
unsignedcharpix[3];
fread(pix,1,3,fp);
src.at<Vec3b>(i,j)[0]=pix[2];
src.at<Vec3b>(i,j)[1]=pix[1];
src.at<Vec3b>(i,j)[2]=pix[0];
}
}
}

fclose(fp);
imshow("src",src);
waitKey(0);
}

使用opencv做的顯示,這裡面有一些小問題,需要自己調試修改

閱讀全文

與dicom解析網頁源碼相關的資料

熱點內容
51單片機c語言應用程序設計實例精講 瀏覽:560
華為安卓手機編譯器 瀏覽:46
怎樣在打開微信前加密 瀏覽:664
旺旺聊天記錄怎麼加密 瀏覽:411
王安憶長恨歌pdf 瀏覽:619
mobile文件夾可以卸載嗎 瀏覽:280
什麼是2通道伺服器 瀏覽:346
mc正版怎麼開伺服器地址 瀏覽:408
樂高解壓朋友圈 瀏覽:14
linux軟raid性能 瀏覽:368
貼片機編程軟體下載 瀏覽:360
mooc大學樂學python答案 瀏覽:408
怎麼投訴途虎app 瀏覽:37
安卓重力感應怎麼關 瀏覽:720
我的世界ios怎麼建伺服器地址 瀏覽:759
伺服器埠ip都是什麼意思 瀏覽:263
華為主題軟體app怎麼下 瀏覽:840
我們的圖片能夠收藏加密嗎 瀏覽:979
mysql空值命令 瀏覽:213
python整點秒殺 瀏覽:885