bool interpolate(const double * pts, size_t npts, std::vector<double> &out )
{
out.clear();
for(size_t i = 0; i < 2*npts; ++i )
{
const size_t j = i / 2;
if( i % 2 )
{
if( j != npts - 1 )
{
assert( 3*j+5 < 3*npts );
const double midpointx = (pts[3*j+0] + pts[3*j+3]) / 2;
const double midpointy = (pts[3*j+1] + pts[3*j+4]) / 2;
const double midpointz = (pts[3*j+2] + pts[3*j+5]) / 2;
out.push_back( midpointx );
out.push_back( midpointy );
out.push_back( midpointz );
}
}
else
{
assert( j < npts );
out.push_back( pts[3*j+0] );
out.push_back( pts[3*j+1] );
out.push_back( pts[3*j+2] );
}
}
assert( out.size() == 2 * npts * 3 - 3 );
return true;
}
int main(int argc, char *argv[])
{
if( argc < 3 )
{
std::cerr << argv[0] << " input.dcm output.dcm" << std::endl;
return 1;
}
const char *filename = argv[1];
const char *outfilename = argv[2];
{
return 1;
}
{
std::cerr << "Failed to change: " << filename << std::endl;
return 1;
}
{
return 0;
}
if( !sqi2 || !sqi2->GetNumberOfItems() )
{
return 0;
}
ncontourpoints.
Set( nestedds2 );
std::vector<double> out( pts, pts + npts * 3 );
std::vector<double> out2;
const unsigned int niter = 8;
for( unsigned int i = 0; i < niter; ++i)
{
interpolate(out.data(), out.size() / 3, out2);
out = out2;
out2.clear();
}
assert( out.size() % 3 == 0 );
at_interpolate.SetNumberOfValues( (unsigned int)(out.size() / 3) );
at_interpolate.
SetValues( out.data(), (uint32_t)out.size() );
de.SetByteValue( tsuid, (uint32_t)strlen(tsuid) );
{
return 1;
}
return 0;
}
Attribute class This class use template metaprograming tricks to let the user know when the template ...
Definition gdcmAttribute.h:86
void SetValue(ArrayType v, unsigned int idx=0)
Definition gdcmAttribute.h:169
const ArrayType * GetValues() const
Definition gdcmAttribute.h:178
void SetValues(const ArrayType *array, unsigned int numel=VMType)
Definition gdcmAttribute.h:173
void Set(DataSet const &ds)
Definition gdcmAttribute.h:226
void SetFromDataElement(DataElement const &de)
Definition gdcmAttribute.h:206
DataElement GetAsDataElement() const
Definition gdcmAttribute.h:183
unsigned int GetNumberOfValues() const
Definition gdcmAttribute.h:111
Class to represent a Data Element either Implicit or Explicit.
Definition gdcmDataElement.h:59
SmartPointer< SequenceOfItems > GetValueAsSQ() const
Class to represent a Data Set (which contains Data Elements)
Definition gdcmDataSet.h:56
const DataElement & GetDataElement(const Tag &t) const
Definition gdcmDataSet.h:188
bool FindDataElement(const PrivateTag &t) const
Look up if private tag 't' is present in the dataset:
SizeType Remove(const Tag &tag)
Completely remove a dataelement from the dataset.
Definition gdcmDataSet.h:172
void Replace(const DataElement &de)
Replace a dataelement with another one.
Definition gdcmDataSet.h:150
FileExplicitFilter class.
Definition gdcmFileExplicitFilter.h:39
void SetFile(const File &f)
Set/Get File.
Definition gdcmFileExplicitFilter.h:60
bool Change()
Set FMI Transfer Syntax.
a DICOM File
Definition gdcmFile.h:34
const DataSet & GetDataSet() const
Get Data Set.
Definition gdcmFile.h:57
const FileMetaInformation & GetHeader() const
Get File Meta Information.
Definition gdcmFile.h:48
Class to represent an Item.
Definition gdcmItem.h:46
const DataSet & GetNestedDataSet() const
Definition gdcmItem.h:80
Reader ala DOM (Document Object Model)
Definition gdcmReader.h:54
const File & GetFile() const
Set/Get File.
Definition gdcmReader.h:72
virtual bool Read()
Main function to read a file.
void SetFileName(const char *filename_native)
Class for Smart Pointer.
Definition gdcmSmartPointer.h:40
Class to represent a DICOM Data Element (Attribute) Tag (Group, Element).
Definition gdcmTag.h:39
Class to manipulate Transfer Syntax.
Definition gdcmTransferSyntax.h:40
static const char * GetTSString(TSType ts)
@ ExplicitVRLittleEndian
Definition gdcmTransferSyntax.h:64
@ ImplicitVRLittleEndian
Definition gdcmTransferSyntax.h:62
Writer ala DOM (Document Object Model)
Definition gdcmWriter.h:49
virtual bool Write()
Main function to tell the writer to write.
void SetFile(const File &f)
Set/Get the DICOM file (DataSet + Header)
Definition gdcmWriter.h:66
void SetFileName(const char *filename_native)
Set the filename of DICOM file to write: