[爆卦]dcm檔是什麼?優點缺點精華區懶人包

為什麼這篇dcm檔鄉民發文收入到精華區:因為在dcm檔這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者jack10313 (彩色筆)看板MATLAB標題Re: [討論] 圖檔顯示 (dicom與jp...


安安

基本上dicom格式與jpg or bmp格式不相同
我猜測檔頭以及資料寫入的方式不一樣
所以你直接用dicomread讀jpg穩掛

建議你先把jpg轉成dicom的dcm檔
然後就可以用matlab的dicomread去讀取

我是用XMedCon從Bmp轉dcm
過程如下
24位元bmp的檔頭資訊是54bit,顏色RGB
讀出來會上下左右顛倒,flip一下
把該有的imformation寫進去
我不是醫學系,所以我亂寫一通
就可以轉dcm,successfully


這是我做出來的
http://ppt.cc/~shi


MATLAB讀取dcm
也沒什麼了不起,因為是matlab內建程式碼
=======================================
[X, map] = dicomread('img.dcm');
montage(X, map, 'Size', [2 5]);


info = dicominfo('img.dcm');
Y = dicomread(info);
figure, imshow(Y);
imcontrast;
========================================

戰一場睡覺,晚安


※ 引述《potter1529 (宋代才女唱元曲)》之銘言:
: 求救各位:
: 我之前利用jpg的影像圖檔進行分析,用的是 X = imread(...) 函式
: 顯示圖用的是imshow(X) 或是 imshow(uint(X))
: 但是現在分析要改成dicom檔
: 我用 X = dicomread(...)
: 然後 imshow(X)
: 出來的圖與我在其他地方用肉眼看到的圖有很大的差距
: http://ppt.cc/G4ec (原圖)
: http://ppt.cc/sMe8 (matlab讀出來的樣子)
: 光是肉眼看就差很多,這樣完全無法知道後面做的事情是不是對的
: 因為之前處理jpg,圖片的亮度是 0~255 (RGB一樣是三維的0~255)
: 但是dicomread出來的陣列顯示的值是 -2048 ~ 2048
: 大小變大就算了,有負值讓我很困惑。
: 而且圖片的解析度如此的低,我在想是不是因為讀出來的格式是int16的關係
: 2048在int16裡面很低?
: 因為之前jpg檔用Uint8顯示就很清楚。
: 我用一些數學的方法,將這些值壓縮在0~256用Uint8顯示
: 或是壓縮成0~1用double顯示黑白畫面
: 都一樣光用肉眼看就跟原圖有相當的差距
: 請問我使用dicomread的方式錯了嗎?
: 或是顯示的方式不對嗎?
: p.s:
: 再補上其他例子
: 左邊是matlab讀出來的圖,右邊是microdicom顯示的圖,我用電腦print出來的
: http://ppt.cc/5q~I

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.165.208
※ 文章網址: http://www.ptt.cc/bbs/MATLAB/M.1402081547.A.01A.html
potter1529:你好 我只剛看過一遍而已 待會詳細多讀幾遍嘗試看看 希 06/07 19:29
potter1529:望能改善。 但是我的問題並不是jpg檔用dicomread讀發生 06/07 19:29
potter1529:問題。而是,我以前用imread讀取jpg沒問題;現在用 06/07 19:29
potter1529:dicomread讀取dicom卻看不清楚 06/07 19:29
jack10313:使用spm8看看? 06/08 00:09
potter1529:spm8當然是沒問題,但是我不知道SPM是怎麼讀的,因為現 06/09 22:45
potter1529:在是自己要處理那些圖,不只是要看而已 06/09 22:45
shane:這不是讀檔的問題,這是影像處理的問題 06/10 09:39
shane:你看一下讀進來後數值最大最小的變化跟精準度 06/10 09:40

你可能也想看看

搜尋相關網站