Hi Alfred!
Wow, that's nice. Thanks for the tip!
What about the mm interpolation? Is this an accurate way to interpolate to mm?
Another problem is, that the slice distance seems to be recognized wrong. It
may be wrong in the data, I don't know. Can I edit this manually somehow?
Best Regards,
Martin
________________________________
Von: Alfred Franz <[email protected]>
An: Martin Tatzber <[email protected]>
CC: ""Görres, Joseph"" <[email protected]>;
"[email protected]" <[email protected]>
Gesendet: 17:00 Mittwoch, 13.März 2013
Betreff: Re: [mitk-users] get pixel values
Hi Martin,
you can access the single values of an mitk::Point3D like in a
normal array, in your example:
position[0]
position[1]
position[2]
Greets,
Alfred
Am 13.03.2013 15:33, schrieb Martin Tatzber:
Hi Joseph!
>
>Thanks for your quick reply!
>
>I'm not really sure if it's better to use itk or mitk. But
as far as I can see, it's not possible to use the mitk
accessors without knowing the data type at compilation
time. So I'll decide on using itk. I'm now doing this,
which works very well:
>
> float coords[3]={100,100,100};
> mitk::Point3D position(coords);
> IndexType idx;
> imageGeometry->WorldToIndex( position, idx);
> TPixel pixelValue=itkImage->GetPixel(idx);
> cout<<"pixel value at 100,100,100 =
"<<pixelValue<<endl;
>
>This gives me the value at the corresponding world
coordinates in mm, which is actually very convenient for
me. Is this always interpolating in mm?
>
>So the next step would then be to iterate just like this:
>
>for(int i=0;i<xsize;i++){
> coords[0]=i;
> for(int j=0;j<ysize;j++) {
> coords[1]=j;
> for(int k=0;k<number_of_slices;k++) {
> coords[2]=k;
> //do something
>}}}
>
>How can I reinitialize a new point? Or is there a way to
just change single coordinates in the mitk::Point3D
variable?
>
>Best Regards,
>Martin
>
>
>
>________________________________
> Von: "Görres, Joseph" <[email protected]>
>An: 'Martin Tatzber' <[email protected]>;
>"[email protected]" <[email protected]>
>Gesendet: 13:16 Dienstag, 12.März 2013
>Betreff: AW: [mitk-users] get pixel values
>
>Hi Martin,
>
>At first you should decide if you want to work with
itk or with mitk images. If you want to work with the
mitk::Image class, ImageAccessors are the best way to
access pixels by index. The concept of ImageAccessors
(including the ImagePixelReadAccessor) is explained on
http://docs.mitk.org/2012.12/MitkImagePage.html#MitkImagePage_AccessImageData.
>
>You get compiler errors, because you cannot call
GetPixelByWorldCoordinates without having an object of
ImagePixelReadAccessor. Your code should look like
this:
>
>mitk::ImagePixelReadAccessor<TPixel,VDimension>
readAccess(image);
>TPixel value =
readAccess.GetPixelByWorldCoordinates(point3d)
>
>However, if you want to work with the itk::Image
class, you should use image access methods provided by
itk.
>
>Best Regards,
>Joseph
>
>
>-------------------------------------------------
>
>Von: Martin Tatzber [mailto:[email protected]]
>Gesendet: Dienstag, 12. März 2013 12:17
>An: [email protected]
>Betreff: [mitk-users] get pixel values
>
>Hi!
>
>I have a DICOM image and now want to go through all
pixels to get their values. How can I do this best?
>
>In the region grower from the tutorial, pixel values
are read like this:
>
>// convert world coordinates to image indices
>imageGeometry->WorldToIndex(
pointsIterator.Value(), seedIndex);
>// get the pixel value at this point
>TPixel currentPixelValue = itkImage->GetPixel(
seedIndex );
>
>Is it possible to iterate ALL pixels like this, not
just some selected points?
>
>Another possibility would be the
ImagePixelReadAccessor, which seems to be what I need,
but I don't know how to use it.
>According to the class reference
>(http://docs.mitk.org/2012.12/classmitk_1_1ImagePixelReadAccessor.html), there
>should be a method GetPixelByWorldCoordinates, but it doesn't seem to
>recognize it, as it says "identifier not found". I tried it as follows, just
>to test it out:
>
>template < typename TPixel, unsigned int
VImageDimension >
>void MITKPluginTest2::ItkImageProcessing(
itk::Image< TPixel, VImageDimension >* itkImage
)
>{
> float coords[3]={100,100,100};
> mitk::Point3D position(coords);
> TPixel p=mitk::ImagePixelReadAccessor<float,
3>::GetPixelByWorldCoordinates(position);
>}
>
>This results in 32 errors, all looking like this, with
different data types instead of int and
VImageDimension 2 or 3:
>
>6>..\..\..\..\myProjectTwo\Plugins\org.company.myplugin2\src\internal\MITKPluginTest2.cpp(160)
: error C2027: use of undefined type
'mitk::ImagePixelReadAccessor<TPixel,VDimension>'
>6> with
>6> [
>6> TPixel=float,
>6> VDimension=3
>6> ]
>6>
..\..\..\..\myProjectTwo\Plugins\org.company.myplugin2\src\internal\MITKPluginTest2.cpp(148)
: see reference to function template instantiation
'void
MITKPluginTest2::ItkImageProcessing<int,2>(itk::Image<TPixel,VImageDimension>
*)' being compiled
>6> with
>6> [
>6> TPixel=int,
>6> VImageDimension=2
>6> ]
>6>..\..\..\..\myProjectTwo\Plugins\org.company.myplugin2\src\internal\MITKPluginTest2.cpp(160)
: error C3861: 'GetPixelByWorldCoordinates':
identifier not found
>
>Can someone help me, please?
>
>Best Regards,
>Martin
>
>
>
>------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users