24小时热门版块排行榜    

查看: 1043  |  回复: 9

飞扬2282

荣誉版主 (著名写手)

[交流] 【求助】生数据转换为DICOM 已有3人参与

生数据512x512x260的raw,读取后转换为dicom格式512x512x260(转换为260幅512x512的二维数据)

[ Last edited by 飞扬2282 on 2010-4-23 at 15:33 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anyuezhiji

银虫 (正式写手)

星空行者


kuhailangyu(金币+1):希望继续来参与! 2010-06-08 14:53:37
?????

三维的?


二维很快可以搞定  三维的还真没碰到过
暗月下没有留下风的痕迹,但它已经寂然飘逝。。By<暗月之寂>:tiger38:
2楼2010-04-23 14:35:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

飞扬2282

荣誉版主 (著名写手)

转换为260幅512x512的二维数据
引用回帖:
Originally posted by anyuezhiji at 2010-04-23 14:35:43:
?????

三维的?


二维很快可以搞定  三维的还真没碰到过

3楼2010-04-23 15:33:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anyuezhiji

银虫 (正式写手)

星空行者

飞扬2282(金币+10): 2010-04-24 08:24
引用回帖:
Originally posted by 飞扬2282 at 2010-04-23 15:33:08:
转换为260幅512x512的二维数据


理论上是可以做到的
但手头没有样本
没法测试
要不你发个样本到我邮箱 我测试下
暗月下没有留下风的痕迹,但它已经寂然飘逝。。By<暗月之寂>:tiger38:
4楼2010-04-23 18:36:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dota

木虫 (著名写手)


飞扬2282(金币+5): 2010-04-24 08:23
adu886886(金币+1):谢谢提供意见 2010-04-24 11:12
搞清楚 RAW 的格式,放循环中,读入一组,立即存写,那样不会有太大问题 (大数据量,慢或死机现象!)。
大概要用到下面一些函数:

fopen
fseek
fread

dicomwrite
5楼2010-04-24 01:08:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anyuezhiji

银虫 (正式写手)

星空行者


kuhailangyu(金币+1):欢迎积极参与 2010-06-08 14:55:00
引用回帖:
Originally posted by dota at 2010-04-24 01:08:53:
搞清楚 RAW 的格式,放循环中,读入一组,立即存写,那样不会有太大问题 (大数据量,慢或死机现象!)。
大概要用到下面一些函数:

fopen
fseek
fread

dicomwrite

楼上正解
关键是RAW 的格式要弄懂
具体可以参考
http://muchong.com/bbs/viewthread.php?tid=1988003&fpage=13楼

http://muchong.com/bbs/viewthread.php?tid=19523106楼
暗月下没有留下风的痕迹,但它已经寂然飘逝。。By<暗月之寂>:tiger38:
6楼2010-04-24 02:06:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

飞扬2282

荣誉版主 (著名写手)

kuhailangyu:有人参与就应该适当给予金币鼓励! 2010-06-08 14:54:47
我已经做到了,代码如下
CODE:
fid=fopen('C:\TDdownload\Img3D512 512 260 8bit.raw','r');
img=fread(fid,512*512*260,'uchar');
img =reshape(img, [512 512 260]);
img = uint16(img);
for i = 1:1:260
filename = strcat(num2str(i), '.dcm');
filename = strcat('C:\TDdownload\CT\',filename);
dicomwrite(squeeze(img(:,:,i)), filename);
end
fclose(fid);

但生成的dicom数据,做后续处理的时候还是有问题,可能matlab的dicom函数比较粗糙吧。我还是尝试用生数据直接可视化吧
7楼2010-04-24 08:00:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dota

木虫 (著名写手)


anyuezhiji(金币+1):谢谢交流 2010-04-25 17:57
那很可能是你图像数据转换的问题,而不是Matlab里面 dicomwrite 的问题!

img = uint16(img);

[ Last edited by dota on 2010-4-24 at 23:14 ]
8楼2010-04-24 23:13:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

飞扬2282

荣誉版主 (著名写手)

anyuezhiji:楼上的意思是数据转换时出了问题 2010-04-25 20:20
引用回帖:
Originally posted by dota at 2010-04-24 23:13:22:
那很可能是你图像数据转换的问题,而不是Matlab里面 dicomwrite 的问题!

img = uint16(img);

[ Last edited by dota on 2010-4-24 at 23:14 ]

我程序里有这个语句啊
9楼2010-04-25 09:01:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anyuezhiji

银虫 (正式写手)

星空行者

★ ★
adu886886(金币+1):AN版辛苦了 2010-04-26 10:05
kuhailangyu(金币+1):网络还没弄好吗?好久没来了 2010-06-08 14:55:18
引用回帖:
Originally posted by 飞扬2282 at 2010-04-25 09:01:04:



我程序里有这个语句啊

你的数据读进来时什么类型??

如果开始储存时是用
'grayscale'
'truecolor'
等格式

img = uint16(img);
这一句可以不要

下面提供图像类型的像素类型转换的函数
引用回帖:
function     to         from
im2uint8      uint8      logical,uint8,uint16,double
im2uint16     uint16     logical,uint8,uint16,double
mat2gray      double     double
im2double     double     logical,uint8,uint16,double
im2bw         logical    uint8,uint16,double

[ Last edited by anyuezhiji on 2010-4-25 at 20:26 ]
暗月下没有留下风的痕迹,但它已经寂然飘逝。。By<暗月之寂>:tiger38:
10楼2010-04-25 20:24:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 飞扬2282 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见