参考链接:https://blog.csdn.net/cqltbe131421/article/details/59484097
功能:实现DICOM图转JPG
参考链接是通过DCMTK工具中dcmj2png.exe命令行方式,我现在要实现在QT中命令行方式转JPG功能,直接上代码
dcmj2png.exe语法:
dcmj2pnm [options] dcmfile-in [bitmap-out]
QProcess p(this);
p.setWorkingDirectory("./DCMTK/bin");//切换工作目录
p.setProgram("cmd");
QStringList argument;
//argument<<"/c"<<"dcmj2pnm +oj +Jq +100 +Js2 D22WXAJ0 1.jpg";
argument<<"/c"<<"dcmj2pnm +oj +Jq +100 +Js2"
<<QString("%1").arg("D22WXAJ0")
<<QString("%1").arg("1.jpg");
p.setArguments(argument);
p.start();
p.waitForStarted(); //等待程序启动
p.waitForFinished();//等待程序关闭
//QString temp=QString::fromUtf8(p.readAllStandardOutput()); //程序输出信息
qDebug()<<temp;
p.close();
- dcmcjpeg: Encode DICOM file to JPEG transfer syntax
- dcmdjpeg: Decode JPEG-compressed DICOM file
- dcmj2pnm: Convert DICOM images to PGM/PPM, PNG, TIFF, JPEG or BMP
- dcmmkdir: Create a DICOMDIR file
DCMTK官网帮助文档:https://support.dcmtk.org/docs/dcmj2pnm.html
DCMTK工具下载:https://download.csdn.net/download/marswap/10141747
此方法可以直接将DICOM转JPG,DICOM图中包含的信息可通过转json文件的方式读出,用到了dcm2json.exe命令,
dcm2json: Convert DICOM file and data set to JSON
语法命令:
dcm2json [options] dcmfile-in [jsonfile-out]
具体代码:
//读取头信息
QProcess p(this);
p.setWorkingDirectory("./DCMTK/bin");//切换工作目录
p.setProgram("cmd");
QStringList argument;
QString name=s2+"/"+QString("%1").arg(files.at(i))+".json";
argument<<"/c"<<"dcm2json "
<<QString("%1").arg(s1+"/"+files.at(i))
<<QString("%1").arg(name);
p.setArguments(argument);
p.start();
p.waitForStarted(); //等待程序启动
p.waitForFinished();//等待程序关闭
p.close();
然后通过解析json可以读取图片中相关信息,比如Patient's Name,Patient ID,Patient Date of Birth,Patient Sex等数据,根据此信息可以生成详细JPG图片或者将信息写在JPG图片上。