1����̵��©����å��󥰡֥Ρ��������

�ڥ��ˡ������磻�भ�Ȥޤ뤴�ȥ��ˣ�ɤʬ��K�� 6,300��

���ݽ��ۼ����巿�ե�������Ѥ��ݽ����ܥå� ��åԡ� �֥�å� 6,300��

����FC2�����������Ϥϥ����ӥ�����λ���ޤ�����
�������������Ϥ���Ͽ������ϥ����κ����ˡ��������
[PR]
��������FC2�����������Ͻ��ϥ����ӥ�����λ���ޤ�����
�������������Ϥ���Ͽ������ϥ����κ����ˡ��������

ROOTStudy

木曜日, 12月 14, 2006

簡易DICOM画像の読み込み

void Read(char *filename)
{
//まず16bit、白黒データのみを対象とする
//残りのフォーマットは関数のオーバーロードで対処
//example:
//Read("sample1.dcm");
//
long i, j;
FILE *ar;
long k;
unsigned short wd;
unsigned short shift = 256;
sprintf(fname, "%s", filename);
ar = fopen(filename, "rb"); //rでなくrbに注意
k = sizeof(unsigned short);
long sizex = 512; //横方向pixel
long sizey = 512; //縦方向pixel
long xy[512][512]; //読み込むファイル
long upperlimit = 60000;
printf("size = %ld\n", k);
printf("ar = %ld\n", ar);
printf("eof = %d\n", EOF);

if(ar != 0){
printf("filename = %s\n", filename);
fread(&wd, sizeof(unsigned short),1, ar);
printf("wd = %d\n", wd);
while(wd!=32736){ //0x7FE0まで空読み
fread(&wd, sizeof(unsigned short),1, ar);
}
while(wd!=16){ //0x0010まで空読み {7FE0,0010}はPixelDataの開始
fread(&wd, sizeof(unsigned short),1, ar);
}
for(i = 0; i < sizey; i++){
for(j = 0; j < sizex; j++){
fread(&wd, sizeof(unsigned short),1, ar);
if(wd > upperlimit){wd = 0;}
xy[j][i] = wd;
}
}
printf("read finish.\n");
fclose(ar);
}
else{printf("file not readed.\n");}
}