Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在DCMTK中将字符串转换为字符串或字符_C++_Opencv_Image Processing_Dcmtk - Fatal编程技术网

C++ 在DCMTK中将字符串转换为字符串或字符

C++ 在DCMTK中将字符串转换为字符串或字符,c++,opencv,image-processing,dcmtk,C++,Opencv,Image Processing,Dcmtk,我正在尝试使用dcmtk从DICOM图像中提取实例号。代码如下所示: DcmFileFormat fileformat; OFCondition status = fileformat.loadFile(src_path); if (status.good()) { OFString instanceNumber=0; if (fileformat.getDataset()->findAndGetOFString(DCM_Inst

我正在尝试使用dcmtk从DICOM图像中提取实例号。代码如下所示:

DcmFileFormat fileformat;
    OFCondition status = fileformat.loadFile(src_path);
    if (status.good())
      {
        OFString instanceNumber=0;
        if (fileformat.getDataset()->findAndGetOFString(DCM_InstanceNumber, instanceNumber).good())
        {
            std::cout << "instance Number N: " << instanceNumber << std::endl;
            sprintf(instanceNum, "%s\n", instanceNumber);

            printf("%s\n", instanceNum);
        }
        else
            std::cerr << "Error: cannot access instance Number!" << std::endl;
       }
    else
        std::cerr << "Error: cannot read DICOM file (" << status.text() << ")" << std::endl;
DcmFileFormat文件格式;
OFCondition status=fileformat.loadFile(src_路径);
if(status.good())
{
OFString instanceNumber=0;
if(fileformat.getDataset()->FindAndGetOfsString(DCM_InstanceNumber,InstanceNumber).good())
{
std::cout您可以使用它来获取一个
const char*
并根据它创建一个
字符串

std::string s(instanceNumber.c_str());
如果需要,您可以使用获取一个
const char*
并基于该字符串创建一个
字符串

std::string s(instanceNumber.c_str());

您可以使用dcmtk通过findAndGetXXX方法直接读取请求的数据类型。在您的特定情况下,实例号的VR为,因此要使用的方法为findAndGetSint32。请参阅:

应用于您的代码:

DcmFileFormat fileformat;
OFCondition status = fileformat.loadFile(src_path);
if (status.good())
  {
    SInt32 instanceNumber=0;
    if (fileformat.getDataset()->findAndGetSint32(DCM_InstanceNumber, &instanceNumber).good())
    {
        std::cout << "instance Number N: " << instanceNumber << std::endl;
        sprintf(instanceNum, "%d\n", instanceNumber);

        printf("%d\n", instanceNum);
    }
    else
        std::cerr << "Error: cannot access instance Number!" << std::endl;
   }
else
    std::cerr << "Error: cannot read DICOM file (" << status.text() << ")" << std::endl;
DcmFileFormat文件格式;
OFCondition status=fileformat.loadFile(src_路径);
if(status.good())
{
SInt32 instanceNumber=0;
if(fileformat.getDataset()->findAndGetSint32(DCM_InstanceNumber,&InstanceNumber).good())
{

std::cout您可以使用dcmtk通过findAndGetXXX方法直接读取请求的数据类型。在您的特定情况下,实例号的VR为,因此要使用的方法是findAndGetSint32。请参阅:

应用于您的代码:

DcmFileFormat fileformat;
OFCondition status = fileformat.loadFile(src_path);
if (status.good())
  {
    SInt32 instanceNumber=0;
    if (fileformat.getDataset()->findAndGetSint32(DCM_InstanceNumber, &instanceNumber).good())
    {
        std::cout << "instance Number N: " << instanceNumber << std::endl;
        sprintf(instanceNum, "%d\n", instanceNumber);

        printf("%d\n", instanceNum);
    }
    else
        std::cerr << "Error: cannot access instance Number!" << std::endl;
   }
else
    std::cerr << "Error: cannot read DICOM file (" << status.text() << ")" << std::endl;
DcmFileFormat文件格式;
OFCondition status=fileformat.loadFile(src_路径);
if(status.good())
{
SInt32 instanceNumber=0;
if(fileformat.getDataset()->findAndGetSint32(DCM_InstanceNumber,&InstanceNumber).good())
{

std::cout实际上,OFString实现了std::string的一个子集,因此如果您想像其他人已经建议的那样获得一个“const char*”,那么可以使用c_str()。或者,您也可以编译定义了_std_string的DCMTK,并且OFString将与std::string相同


当然,文档中也描述了所有这一切。

实际上,OFString实现了std::string的一个子集,因此,如果您想获得其他人已经建议的“const char*”,可以使用c_str()。或者,您也可以编译定义了_std_字符串的DCMTK,并且OFString将与std::string相同


当然,所有这些都在文档中进行了描述。

为什么这是C?为什么这是C?@AbhishekV.Pai I Idid@AbhishekV.Pai我做的