# vtkImageExtractComponents to vtkDICOMReader

**URL:** https://discourse.vtk.org/t/vtkimageextractcomponents-to-vtkdicomreader/3682
**Category:** Support
**Created:** [July 1, 2020, 1:29pm UTC](https://discourse.vtk.org/t/vtkimageextractcomponents-to-vtkdicomreader/3682 "2020-07-01T13:29:33Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![flaviu2](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/f/74df32/32.png) [@flaviu2](https://discourse.vtk.org/u/flaviu2)
#### Post date: [July 1, 2020, 1:29pm UTC](https://discourse.vtk.org/t/vtkimageextractcomponents-to-vtkdicomreader/3682/1 "2020-07-01T13:29:33Z")

</div>

I have loaded a DICOM series into a **vtkDICOMReader** , and to represent the data into a **vtkVolume** , I transfer it **vtkDICOMReader** into a **vtkImageExtractComponents**. On this **vtkImageExtractComponents** object I have done some segmentation. Now, I want to transfer data back from **vtkImageExtractComponents** to **vtkDICOMReader** , in order to export it as DICOM series. Is there possible this ? If it is, how to transfer data from **vtkImageExtractComponents to vtkDICOMReader**?

---

<div class="post-metadata">

### Author: ![flaviu2](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/f/74df32/32.png) [@flaviu2](https://discourse.vtk.org/u/flaviu2)
#### Post date: [July 2, 2020, 8:17am UTC](https://discourse.vtk.org/t/vtkimageextractcomponents-to-vtkdicomreader/3682/2 "2020-07-02T08:17:48Z")

</div>

I think vtkDICOMReader accept files as input only… but what if I want to load a vtkImageData ?

I have found on vtkImageExtractComponents a method: **m\_pImageExtractor-\>GetImageDataInput(0)**

which return a vtkImageData … but how can I load this vtkImageData into vtkDICOMReader ?

---

<div class="post-metadata">

### Author: ![flaviu2](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/f/74df32/32.png) [@flaviu2](https://discourse.vtk.org/u/flaviu2)
#### Post date: [July 2, 2020, 9:05am UTC](https://discourse.vtk.org/t/vtkimageextractcomponents-to-vtkdicomreader/3682/3 "2020-07-02T09:05:02Z")

</div>

I have tried:

```
vtkDICOMReader* pDICOMReader = vtkDICOMReader::New();
vtkImageData* pImageData = m_pImageExtractor->GetImageDataInput(0);

pDICOMReader->GetOutput()->CopyStructure(pImageData);
pDICOMReader->GetOutput()->GetPointData()->PassData(pImageData->GetPointData());

```

but I got:

```
> ERROR: In D:\VTK\vtk-dicom-master\Source\vtkDICOMReader.cxx, line 2403
> vtkDICOMReader (0000016D942CACE0): ERROR: In D:\VTK\vtk-dicom-master\Source\vtkDICOMParser.cxx, line 1903
> vtkDICOMParser (0000016D943D14B0): ReadFile: Can't open the file .0

```

Obviously I have done something wrong, but what ?

---

<div class="post-metadata">

### Author: ![dgobbi](https://discourse.vtk.org/user_avatar/discourse.vtk.org/dgobbi/32/18_2.png) [@dgobbi](https://discourse.vtk.org/u/dgobbi)
#### Post date: [July 2, 2020, 2:23pm UTC](https://discourse.vtk.org/t/vtkimageextractcomponents-to-vtkdicomreader/3682/4 "2020-07-02T14:23:30Z")

</div>

You cannot take data out of a reader, modify it, and then put it back into the reader. VTK doesn’t work like that.

---

<div class="post-metadata">

### Author: ![flaviu2](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/f/74df32/32.png) [@flaviu2](https://discourse.vtk.org/u/flaviu2)
#### Post date: [July 2, 2020, 2:47pm UTC](https://discourse.vtk.org/t/vtkimageextractcomponents-to-vtkdicomreader/3682/5 "2020-07-02T14:47:39Z")

</div>

Then I guess I get in the trouble. I have read DICOM CBCT series with excellent class **vtkDICOMReader**. In order to visualize this data as vtkVolume, I put this vtkDICOMReader into a **vtkImageExtractComponents** , just like that:

```
// use m_pImageExtractor for volume because the series could have more components inside
m_pImageExtractor->SetInputConnection(m_pDICOMReader->GetOutputPort());
m_pImageExtractor->SetComponents(0);
m_pImageExtractor->Update();

```

Then, I exported this m\_pImageExtractor into a vtkImageExport on ITK (SimpleITK), made some segmentation, and put back data into m\_pImageExtractor through vtkImageImport. Fine by here.

The issue is that I need to export this data as DICOM series through vtkDICOMWriter. How much is possible that ?

---

<div class="post-metadata">

### Author: ![dgobbi](https://discourse.vtk.org/user_avatar/discourse.vtk.org/dgobbi/32/18_2.png) [@dgobbi](https://discourse.vtk.org/u/dgobbi)
#### Post date: [July 2, 2020, 3:23pm UTC](https://discourse.vtk.org/t/vtkimageextractcomponents-to-vtkdicomreader/3682/6 "2020-07-02T15:23:03Z")

</div>

You should put the data from vtkImageImport into vtkDICOMWriter.

Putting the data from vtkImageImport back into m\_pImageExtractor makes no sense.

---

<div class="post-metadata">

### Author: ![flaviu2](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/f/74df32/32.png) [@flaviu2](https://discourse.vtk.org/u/flaviu2)
#### Post date: [July 3, 2020, 2:07pm UTC](https://discourse.vtk.org/t/vtkimageextractcomponents-to-vtkdicomreader/3682/7 "2020-07-03T14:07:08Z")

</div>

Sound logical and after I implemented this approach, work great ! Thank you !
