[Ves] Using KiwiViewer to load a DICOM file

Pat Marion pat.marion at kitware.com
Sat Jul 28 12:44:39 EDT 2012


The build in the mac terminal is for compiling the cross platform
libraries.  These libraries can be compiles for ios-device, ios-simulator,
android, and linux.  The xcode part of the build compiles just the
objective-c files that are specific to iOS.  If you want to add additional
cpp files to the xcode project, that should work fine, they do not need to
be compiled separately.

I'm not sure what the problem is with the build errors you are seeing in
your new project.  But, in the past I have seen issues when adding VTK dirs
to the header search path using recursive directory searching, some files
in there may conflict, but if you do it exactly the same as it is the
KiwiViewer xcode project then things should work.

I haven't had time to look at the dicom file yet, but I will try to soon.

Pat

On Fri, Jul 27, 2012 at 8:37 PM, Samuel Valdes G. <valdesgutierrez at gmail.com
> wrote:

> Pat, I had other question? Why did you build kiwi in different parts: one
> with the Mac terminal (where ves-ios-device and ves-ios-simulator are
> built) and the other with Xcode when you run and built the kiwi program?
> Are you able to compile everything only in Xcode or not? I am asking you
> this because I am trying to read the dicom file in a different way.
>
> The thing is when I included the header vtkDICOMImageReader.h in the vesKiwiDataLoader.cpp
> file from your project and compiled the files using the mac terminal I
> didn´t have any building errors. However now when I include the same header
> file in a .mm file which I created in a new project with the paths and
> libraries set correct, I am having building erros in files which belong
> to the c++ libraries from the iOS SDK (specifically stl_algobase.h and
> char_traits.h, I got semantic erros like undeclared identifier
> 'ostreambuf_iterator' ).
>
> Do you need to put the incude files in .cpp files and build
> them separately from the project?
>
> Best Regards
>
> Samuel
>
> On Thu, Jul 26, 2012 at 5:10 PM, Samuel Valdes G. <sovaldes at uc.cl> wrote:
>
>> The first one, named test.dcm (the one in a google docs link) is a set of
>> 300 images, the second one, named test2.dcm, is only 1 image.
>>
>> Best Regards
>>
>> Samuel
>>
>>
>> On Thu, Jul 26, 2012 at 4:51 PM, Pat Marion <pat.marion at kitware.com>wrote:
>>
>>> Thanks, I received the data and I will take a look soon.  It's possible
>>> that VTK's DICOM reader is not a full featured DICOM reader, and it will be
>>> unable to read your data in full.  I'll give it a try.  Does this dataset
>>> contain a single image slice, or multiple slices?
>>>
>>> Pat
>>>
>>>
>>> On Thu, Jul 26, 2012 at 4:25 PM, Samuel Valdes G. <sovaldes at uc.cl>wrote:
>>>
>>>> Dear Pat,
>>>>
>>>> May be, I gave you a DICOM file really heavy. I found other one that is
>>>> much smaller that the first one if you want to work with it. Here I
>>>> attached the file
>>>>
>>>>
>>>> On Thu, Jul 26, 2012 at 9:51 AM, Samuel Valdes G. <sovaldes at uc.cl>wrote:
>>>>
>>>>> Yes of course, I had troubles to send you the file via e-mail, because
>>>>> it was rejected by your server. Here I post a link where you can download
>>>>> the file
>>>>>
>>>>> https://docs.google.com/file/d/0BzrUJhUyClc8WHh3V2gtRFlIMlE/edit
>>>>>
>>>>> Best Regards
>>>>>
>>>>> Samuel
>>>>>
>>>>> On Thu, Jul 26, 2012 at 12:37 AM, Pat Marion <pat.marion at kitware.com>wrote:
>>>>>
>>>>>> Perhaps the reader is having trouble reading your file.  Is it
>>>>>> possible to send me test.dcm so I can try?
>>>>>>
>>>>>> Pat
>>>>>>
>>>>>>
>>>>>> On Wed, Jul 25, 2012 at 8:23 PM, Samuel Valdes G. <sovaldes at uc.cl>wrote:
>>>>>>
>>>>>>> 1. First I went to the vesKiwiDataLoader.cpp file and below the line
>>>>>>> 192 I add this code
>>>>>>>
>>>>>>>   else if (this->hasEnding(filename, "dcm"))
>>>>>>>
>>>>>>>   {
>>>>>>>
>>>>>>>       vtkSmartPointer<vtkDICOMImageReader> reader =
>>>>>>> vtkSmartPointer<vtkDICOMImageReader>::New();
>>>>>>>
>>>>>>>       reader->SetFileName(filename.c_str());
>>>>>>>
>>>>>>>       //return 0;
>>>>>>>
>>>>>>>       this->datasetFromAlgorithm(reader);
>>>>>>>
>>>>>>>   }
>>>>>>>
>>>>>>> 2. Then I added in the include area the vtkDICOMImageReader.h. In
>>>>>>> the line 27, I put
>>>>>>>
>>>>>>> #include <vtkDICOMImageReader.h>
>>>>>>>
>>>>>>> 3. Afterwards I add DICOM file to the data folder (located in
>>>>>>> /path/to/VES/Apps/iOS/Kiwi/Kiwi/Data) and I drag it to my project. The name
>>>>>>> of my file is test.dcm
>>>>>>>
>>>>>>> 4. The I went to the vesKiwiViewer.cpp file and I add an option to
>>>>>>> open my DICOM file in the dataset. I wrote in the line 192
>>>>>>>
>>>>>>> this->addBuiltinDataset("Test", "test.dcm");
>>>>>>>
>>>>>>> 5. After that I compiled again in the mac terminal the
>>>>>>> ves-ios-simulator and ves-ios-device folders (make ves-ios-simulator and
>>>>>>> make ves-ios-device) in the
>>>>>>> /path/to//VES/Apps/iOS/CMakeBuild/build/CMakeExternals/Build path and the I
>>>>>>> compiled all the kiwi project again.
>>>>>>>
>>>>>>> Now the problem that I am having is that I am having a *memory
>>>>>>> acces problem* when I tried to open the new file in the simulator.
>>>>>>> As I checkes, the problem is related with the *datasetFromAlgorithm,
>>>>>>> * which is not letting me to render the DICOM image. The error that
>>>>>>> I am having is in the vtkPolyData.h at the line 78, when the program is
>>>>>>> trying to convert de DICOM dataset to a vtkPolyData.
>>>>>>>
>>>>>>> Do you have any solution for this?
>>>>>>>
>>>>>>> Best Regards,
>>>>>>>
>>>>>>> Samuel
>>>>>>>
>>>>>>> On Wed, Jul 25, 2012 at 8:22 PM, Samuel Valdes G. <
>>>>>>> valdesgutierrez at gmail.com> wrote:
>>>>>>>
>>>>>>>> So I did this
>>>>>>>>
>>>>>>>> 1. First I went to the vesKiwiDataLoader.cpp file and below the
>>>>>>>> line 192 I add this code
>>>>>>>>
>>>>>>>>   else if (this->hasEnding(filename, "dcm"))
>>>>>>>>
>>>>>>>>   {
>>>>>>>>
>>>>>>>>       vtkSmartPointer<vtkDICOMImageReader> reader =
>>>>>>>> vtkSmartPointer<vtkDICOMImageReader>::New();
>>>>>>>>
>>>>>>>>       reader->SetFileName(filename.c_str());
>>>>>>>>
>>>>>>>>       //return 0;
>>>>>>>>
>>>>>>>>       this->datasetFromAlgorithm(reader);
>>>>>>>>
>>>>>>>>   }
>>>>>>>>
>>>>>>>> 2. Then I added in the include area the vtkDICOMImageReader.h. In
>>>>>>>> the line 27, I put
>>>>>>>>
>>>>>>>> #include <vtkDICOMImageReader.h>
>>>>>>>>
>>>>>>>> 3. Afterwards I add DICOM file to the data folder (located in
>>>>>>>> /path/to/VES/Apps/iOS/Kiwi/Kiwi/Data) and I drag it to my project. The name
>>>>>>>> of my file is test.dcm
>>>>>>>>
>>>>>>>> 4. The I went to the vesKiwiViewer.cpp file and I add an option to
>>>>>>>> open my DICOM file in the dataset. I wrote in the line 192
>>>>>>>>
>>>>>>>> this->addBuiltinDataset("Test", "test.dcm");
>>>>>>>>
>>>>>>>> 5. After that I compiled again in the mac terminal the
>>>>>>>> ves-ios-simulator and ves-ios-device folders (make ves-ios-simulator and
>>>>>>>> make ves-ios-device) in the
>>>>>>>> /path/to//VES/Apps/iOS/CMakeBuild/build/CMakeExternals/Build path and the I
>>>>>>>> compiled all the kiwi project again.
>>>>>>>>
>>>>>>>> Now the problem that I am having is that I am having a *memory
>>>>>>>> acces problem* when I tried to open the new file in the simulator.
>>>>>>>> As I checkes, the problem is related with the *
>>>>>>>> datasetFromAlgorithm,* which is not letting me to render the DICOM
>>>>>>>> image. The error that I am having is in the vtkPolyData.h at the line 78,
>>>>>>>> when the program is trying to convert de DICOM dataset to a vtkPolyData.
>>>>>>>>
>>>>>>>> Do you have any solution for this?
>>>>>>>>
>>>>>>>> Best Regards,
>>>>>>>>
>>>>>>>> Samuel
>>>>>>>>
>>>>>>>> On Wed, Jul 25, 2012 at 1:42 PM, Pat Marion <pat.marion at kitware.com
>>>>>>>> > wrote:
>>>>>>>>
>>>>>>>>> Hi Samuel,
>>>>>>>>>
>>>>>>>>> The KiwiViewer app for Android and iPad does not have support for
>>>>>>>>> DICOM, however, the VTK library that the app is based on does have DICOM
>>>>>>>>> I/O support, so it should be straightforward to add a DICOM reader to
>>>>>>>>> KiwiViewer.  In theory, it should work with just a small amount of
>>>>>>>>> additional code, but I have not tried it.
>>>>>>>>>
>>>>>>>>> If you decide to try yourself, first make sure you can build and
>>>>>>>>> run KiwiViewer on your device.  Next, edit the file
>>>>>>>>> src/kiwi/vesKiwiDataLoader.cpp.  Search for vtkXMLImageDataReader and
>>>>>>>>> you'll see the code that handles vtk image files (.vti extension.)  You
>>>>>>>>> could insert similar code here to read DICOM files using the
>>>>>>>>> vtkDICOMImageReader.
>>>>>>>>>
>>>>>>>>> Pat
>>>>>>>>>
>>>>>>>>> On Tue, Jul 24, 2012 at 7:35 PM, Samuel Valdes G. <sovaldes at uc.cl>wrote:
>>>>>>>>>
>>>>>>>>>> Had anyone had succes loading a DICOM file through Kiwiviewr? IS
>>>>>>>>>> there any tutorial for doing that?
>>>>>>>>>>
>>>>>>>>>> Regards
>>>>>>>>>>
>>>>>>>>>> Samuel Valdés G.
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Ves mailing list
>>>>>>>>>> Ves at public.kitware.com
>>>>>>>>>> http://public.kitware.com/cgi-bin/mailman/listinfo/ves
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Atte
>>>>>>>>
>>>>>>>> Samuel Valdés G.
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
>
> --
> Atte
>
> Samuel Valdés G.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/ves/attachments/20120728/f75fdad1/attachment-0002.html>


More information about the Ves mailing list