rouet [Sun, 12 Dec 2004 17:21:07 +0000 (17:21 +0000)]
* FIX: new handling of JPEG decompression, especially when dicom
frames are split into several JPEG Fragments. This makes use of
jpeg decompression from memory buffer. This solves reading for
example gdcm-JPEG-Lossless_Thoravision.dcm.
rouet [Sun, 12 Dec 2004 13:32:23 +0000 (13:32 +0000)]
* FIX: modified DirList::Explore in order to make it work under
Cygwin when GDCM_DATA_ROOT is a defined by CMake as a unix
path. The patch consists in not using the FindFirstFile win32api
function under cygwin but rather the open dir *nix method.
malaterre [Fri, 10 Dec 2004 15:50:04 +0000 (15:50 +0000)]
ENH: Adding an example that only work on linux, not on Win32. It shows how to create a DICOM image from scratch, we are only allowed to copy the string based entry from a previous DICOM
regrain [Fri, 10 Dec 2004 13:49:05 +0000 (13:49 +0000)]
* src/gdcmFile.[h|cxx], gdcmPixelReadConvert.[h|cxx] : change the API.
Rename Decompressed to Raw
* Use the API changes in gdcm::File.
* vtk/vtkGdcmWriter.[h|cxx] : add the possibility to write in other modes
Memory leaks fixed
-- BeNours
regrain [Fri, 10 Dec 2004 08:34:06 +0000 (08:34 +0000)]
* vtk/vtkGdcmWriter.cxx, Example/WriteDicomSimple.cxx : add comments for
each added entry in the header. Replace the 'Planes' field by the 'Number
of Frames' field
-- BeNours
regrain [Thu, 9 Dec 2004 11:31:51 +0000 (11:31 +0000)]
* Example/WriteDicomSimple.cxx : example to write a dicom file from nothing.
At this time, this image isn't readable by e-film... waiting JPR help to
solve it.
-- BeNours
regrain [Wed, 8 Dec 2004 11:37:15 +0000 (11:37 +0000)]
* vtk/vtkGdcmReader.[h|cxx] : bug fix. Plane order isn't inverted
* vtk/vtkGdcmWriter.[h|cxx] : correctly write images (the Y axis is inverted)
* Test/ShowDicomSeq.cxx : new test to verify the use of AddFileName method
* Test/ShowDicom.cxx, TestWriteWithVTK.cxx : set the threshold of regression
test to 0.0
* Test/TestCopyRescaleDicom.cxx : remove unused variable
* Test/CMakeLists.txt : add the creation of the gdcmDataSeqImages.h file
containing found sequences
-- BeNours
regrain [Tue, 7 Dec 2004 18:16:39 +0000 (18:16 +0000)]
* Test/ShowDicom.cxx, TestWriteWithVTK.cxx : bug fix, now this test pass
not at all time
* Test/TestCopyRescaleDicom.cxx : rearrange the test to correctly pass...
Some fields in BinEntry must be copied to not seg fault when making the :
gdcm::File *copy = new gdcm::File( copyH );
and tests are now made on good variables
-- BeNours
regrain [Tue, 7 Dec 2004 17:28:49 +0000 (17:28 +0000)]
* vtk/vtkGdcmWriter.[h|cxx] : add a first version of vtkGdcmWriter
* src/gdcmValEntry.cxx : bug fix when setting the value. Problems of odd
length
* src/gdcmHeader.cxx : Remove a useless call to Util::DicomString
* Add vtkGdcmWriter example and test
-- BeNours
malaterre [Tue, 7 Dec 2004 15:41:59 +0000 (15:41 +0000)]
ENH: Temporarily add jmemsrc. Patch suggest by Jean Michel Rouet, it enhance the jpeg lib to be able to decompress jpeg stream directly from memory + remove tabs
regrain [Tue, 7 Dec 2004 13:39:31 +0000 (13:39 +0000)]
* Test/TestUtil.cxx : reformat the source code
* vtk/vtkGdcmReader.cxx : remove and change prints
* src/gdcmValEntry.[cxx|h] : now set the length of the value when calling
SetValue
* src/gdcmBinEntry.[cxx|h] : SetValue method don't set the length
* src/*.cxx : remove all useless call to SetLength of a ValEntry object
-- BeNours
regrain [Mon, 6 Dec 2004 12:54:40 +0000 (12:54 +0000)]
* src/gdcmDocument.cxx : bug fix when opening the file. All read is followed
by an eof to prevent all bad read of the file... and in this case, the
file isn't readable.
-- BeNours
regrain [Mon, 6 Dec 2004 11:37:36 +0000 (11:37 +0000)]
* Example/Volume2Dicom.cxx : comment unused variables
* Test/PrintDicomDir.cxx : comment unused variables
* Test/BuildUpDicomDir.cxx : remove dbg.Verbose. Remove the FIXME.
* src/SQItem.[h|cxx] : remove the PtagHT variable. Remove the AddDocEntry
method that is redondant with AddEntry.
* src/gdcmDocEntrySet.h : add pure virtual methods common to ElementSet and
SQItem
-- BeNours
malaterre [Fri, 3 Dec 2004 20:16:55 +0000 (20:16 +0000)]
ENH: * Huge cleanup:
- Remove printf / sprintf
- include iostream AFTER gdcm so we don't get warnings
- GDCM_NO_ANSI_STRING_STREAM shouldn't be used explitely ouside of gdcm source
- Also remove tons of include from header files, hopefully this should speeup the compilation time, since it was becoming a dog slow.
- Remove gdcm.h as it include way too many files and slow down compilation (plus it is not up to date)
- remove /using namespace std/ this is BAD
regrain [Fri, 3 Dec 2004 17:13:17 +0000 (17:13 +0000)]
* Remove memory leaks on the DicomDir
* Remove some useless datas in DicomDirObject
* Add usefull methods in SQItem, to be complient withe the ElementSet
-- BeNours
regrain [Fri, 3 Dec 2004 11:55:37 +0000 (11:55 +0000)]
* src/gdcmPixelWriteConvert.[h|cxx] : new class to write datas (and in the
future, with convertion)
* src/gdcmFile.[h|cxx] : the PixelWriteConverter instance replace Pixel_Data
and ImageDataSize values. Remove the method to get the PixelReadConverter
from the output of the class
-- BeNours
regrain [Thu, 2 Dec 2004 15:14:15 +0000 (15:14 +0000)]
* Test/TestCopyDicom.cxx : the new dicom created is created empty, without
file name in input
* src/gdcmSeqEntry.cxx : bug fix in destruction of an element
* src/gdcmHeader.cxx : bug fix. Keep the string, otherwise it is destroyed.
The string leaves only in the fonction. So when we make a .c_str(), we
get the pointeur on the first element, element that will be destroyed
immediately after thee instruction.
* src/gdcmDocument.cxx : remove memory leaks. Bug fix when testing if the
file has been opened : the test must be made on the content of the
pointer and not directly on the pointer !
Code formatting
-- BeNours
regrain [Tue, 30 Nov 2004 17:00:54 +0000 (17:00 +0000)]
* Test/ShowDicom.cxx : Change the test to only open one vtkImageViewer.
Otherwise, under linux (Graphic card : NVidia / SE : FedoraCore 1) the
X session is killed (for my computer... it seems to not be identic on
all linux)
-- BeNours
regrain [Tue, 30 Nov 2004 15:44:43 +0000 (15:44 +0000)]
* Test/ShowDicom.cxx : now can be used with an off-screen rendering to
avoid problems (otherwise, the difference test between the visible image
and the reference is incorrect. If the reference is greater than the
screen resolution, it's produce errors).
Can be used for only one image. Can be used with a visible flag.
* vtk/vtkGdcmReader.cxx : remove commented codes.
* vtk/vtkGdcmReader.h : add the gdcmCommon.h include file to avoid warnings
under windows at compilation
* vtk/vtkgdcmViewer.cxx : reformat the file. Apply a default window/level
for grayscale images
* vtk/GdcmToBaseline.cxx : new program to easy create the reference image
-- BeNours
regrain [Tue, 30 Nov 2004 14:17:51 +0000 (14:17 +0000)]
* src/gdcmFile.[h|cxx] : bug fix for ACR-LIBIDO files when writting the file
* Test/TestAllReadCompareDicom.cxx, TestReadWriteReadCompare.cxx : add
tests on the image size X, Y, Z
-- BeNours
regrain [Fri, 26 Nov 2004 10:55:02 +0000 (10:55 +0000)]
* Remove some useless methods in gdcm::Document, gdcm::Header and gdcm::File
* Rename gdcmHeaderHelper.[h|cxx] to gdcmSerieHeader.[h|cxx] to be coherent
between the class name and the file name
-- BeNours
regrain [Thu, 25 Nov 2004 16:35:16 +0000 (16:35 +0000)]
fix compilation warnings for the gdcm::Document::TransferSyntaxStrings
variable... create a static method in gdcm::Document to access to
this variable content.
-- BeNours
regrain [Thu, 25 Nov 2004 13:12:02 +0000 (13:12 +0000)]
* src/gdcmDocument.[h|cxx] : set the Transfert Syntax values to the header
file, to be accessed by other files (like gdcmFile). Remove commented
code. Move the change of the header to the gdcmFile, using the
DocEntryArchive
* src/gdcmHeader.[h|cxx] : the write is completely made in the Header.
To be sure of that (and simplify calls), the Write of the header now
gets a file name and not a file pointer (std::ifstream).
* src/gdcmFile.[h|cxx] : apply the write file type to the header, using the
DocEntryArchive. Remove all open of the written file
-- BeNours
regrain [Thu, 25 Nov 2004 10:24:32 +0000 (10:24 +0000)]
* src/gdcmDocument.cxx : fix bug... test if the fp is opened to use it
* src/gdcmPixelConvert.cxx : calculate the image size when while the grab of
the header.
* src/gdcmFile.[h|cxx] : remove PixelRead and ImageDataSizeRaw variables and
some corresponding methods. Write correctly the file and check before
write
* Test/TestCopyDicom.cxx, TestReadWriteReadCompare.cxx,
TestAllReadCompareDicom.cxx : pass the write of images to RGB and test
is now on RGB datas (as before my last commit
* Example/PrintHeader.cxx, PrintFile.cxx : repad files.
-- BeNours
regrain [Wed, 24 Nov 2004 16:39:17 +0000 (16:39 +0000)]
* src/gdcmBinEntry.cxx, gdcmSeqEntry.cxx, gdcmSQItem.cxx, gdcmValEntry.cxx :
Add a print information of the type of the entry
* src/gdcmDocument.cxx : add the write of the preambule of a Dicom file.
It was in the gdcmFile, and all write have been regrouped
* src/gdcmFile.[h|cxx] : add methods to get the Raw data elements and size.
Write correctly all dicom files (in decompressed mode only at this time)
* Test/ : test on files are now made using Raw datas and not color datas if
any.
* Example/PrintFile.cxx : add more printings
-- BeNours
regrain [Wed, 24 Nov 2004 11:17:46 +0000 (11:17 +0000)]
* Amelioration of code, remove some code copy. For the loading of
BinEntry (in gdcmDocument), add the test to verify if the file is already
opened or not.
-- BeNours
regrain [Wed, 24 Nov 2004 10:23:45 +0000 (10:23 +0000)]
* src/gdcmDocEntryArchive.[h|cxx] : bug fix and add a method to temporary
remove a DocEntry in the header (push an empty DocEntry)
* src/gdcmFile.[h|cxx] : remove some useless variables, methods and code
lines. Bug fix in the initialization of the PixelConvert and the
DocEntryArchive
* src/gdcmElementSet.[h|cxx] : add methods Initialize and GetNext to
use in TestCopyDicom (now this test can run under windows... but fails)
* Test/TestCopyDicom.cxx : amelioration of the test :
- test the pixels written
- add test points to quickly find where is the error
- can set a file name input and output in arguments
* Test/TestAllReadCompareDicom.cxx, TestReadWriteReadCompare.cxx :
amelioration of the test output
* TestCopyDicom always fails... but changes to solve it quickly
-- BeNours
regrain [Tue, 23 Nov 2004 11:14:13 +0000 (11:14 +0000)]
* src/gdcmDocEntryArchive.cxx : complete the print function, that prints
all replaced DocEntry's
* src/gdcmFile.[h|cxx] : remove all changes of the header when getting datas.
Now, each needed DocEntry to modify is duplicated, modified and inserted
to the header using DocEntryArchive. Thus, after save, we can restore the
header initial state.
-- BeNours
regrain [Fri, 19 Nov 2004 18:49:38 +0000 (18:49 +0000)]
* src/gdcmDocEntry.cxx : remove the copy of the DictEntry... there isn't
correct to copy it. The DictEntry is specified at the DocEntry creation,
then, it musn't change in the time.
* src/gdcmDocEntryArchive.[h|cxx] : new class. It's goal is to change the
header correctly. At this time, the change is only made for the first
level of the Document. In the future, it might consider sequences.
The change is made by replacing a DocEntry by an other that is created
outside the class. The old value is kept. When we restore the header
status, the added DocEntry is deleted and replaced by the old value.
* src/gdcmElementSet.h : Set the DocEntryArchive like friend.
* src/gdcmFile.[h|cxx] : Use the gdcmDocEntryArchive. Add methods to
set the write type to explicit VR, implicit VR or ACR. Add methods to set
the write mode to native, decompressed or RGB (but not used at this time)
-- BeNours
malaterre [Wed, 17 Nov 2004 19:49:13 +0000 (19:49 +0000)]
ENH: Adding support for GE Private Transfer Syntax where file is in little endian and pixel data is in Big endian. I believe this should also be propagated to gdcmTS class ...
regrain [Wed, 17 Nov 2004 10:20:05 +0000 (10:20 +0000)]
* src/gdcmDocument.cxx : now, when using the ReplaceOrCreateByNumber to
set a BinEntry, the binArea is copied (like to set a ValEntry, the string
is copied).
* Test/TestCopyDicom.cxx, Example/TestCopyDicom.cxx : the image data isn't set because already copied when copying the BinEntry's of the header
* Test/TestAllReadCompareDicom.cxx : remove warnings
-- BeNours
regrain [Tue, 16 Nov 2004 16:20:22 +0000 (16:20 +0000)]
* FIX : now, the DocEntries are all deleted in the gdcmElementSet.
Two problems appear when doing it :
- with the gdcmFile : when the GetImageData method is called, the pixels
are stored in the gdcmPixelConvert, but a gdcmBinEntry link to these
datas (pixels). And each structure destruct the datas when it's
destructed. So we have two destructions for the same datas. To solve it,
a flag is added in the gdcmBinEntry to indicate if the BinEntry owns the
datas or not. If it doesn't own datas, then they will not destroyed by
the gdcmBinEntry.
- with the gdcmDicomDir : the sequences (gdcmSQItem) contain DocEntry
elements. The DicomDir* (DicomDirPatient, etc.) inherit from SQItem.
Thus destruct the DicomDir* elements and the TagHT of the ElementSet
create a double destruction of the same DocEntry's. So, to solve it,
the TagHT is simply cleared and the DicomDir* elements are destroyed.
* TODO : add an entry concerning memory leaks in the DicomDir
-- BeNours