文件夹里都显示是文件类型,如何能快速判断。matlab的 isdicom函数?可以吗?
可以用isdicom函数,文档:https://ww2.mathworks.cn/matlabcentral/fileexchange/11431-isdicom。
isdicom 函数接受一个文件名或一个包含文件名的单元数组,为DICOM文件返回true。 ISDICOM检测从该文件的第128位开始的四个字节字符串是否等于“DICM”,这表明该文件是一个DICOM文件。 这不是一个非常健壮的方法,因为其他文件类型也可能会意外地包含位于第128位的字符串DICM,而非标准的DICOM文件可能不包含这个字符串。
个人认为你应该学习这2篇博文:
1、【DICOM文件格式剖析(初识)】,链接:https://blog.csdn.net/qq_39071305/article/details/101880158
2、【判断文件是否为DICOM文件】,链接:https://blog.csdn.net/xiao123456bin/article/details/125607098
判断依据:根据DICOM前缀,长度为4个字节的字符串是否等于“DICM”来判断该文件是否属于DICOM文件
/判断目标文件是否为DICOM文件/
bool IsDicomFile(QString path)
{
// 判断是否为dicom文件
char buffer[0x85];
std::string s = path.toStdString();
std::ifstream in(path.toStdString().c_str());
in.getline(buffer, 0x85);
if (!((buffer[0x80] == 0x44) && (buffer[0x81] == 0x49) &&
(buffer[0x82] == 0x43) && (buffer[0x83] == 0x4D)))
{
std::cout << path.toStdString() << std::endl;
std::cout << “It’s not a DICOM File!” << std::endl;
return false;
}
return true;
}