[Insight-users] How can I read a pixel from a VectorImage

Ariel Hernán Curiale curiale at gmail.com
Thu Jan 17 09:41:38 EST 2013


Bradley, I think this is what I want to do. 
Thanks a lot and sorry again for the mailing list.
Saludos
__________________________________
| Ariel Hernán Curiale Ph.D Student
| ETSI Telecomunicación
| Universidad de Valladolid
| Campus Miguel Delibes
| 47011 Valladolid, Spain
| Phone: 983-423000 ext. 5590
| Web: www.curiale.com.ar
|_________________________________

El 17/01/2013, a las 15:04, Bradley Lowekamp escribió:

> Ariel,
> 
> Please respond to all to include the mailing list so that all may benefit.
> 
> I agree you certainly should be able to set and get a vector pixel type, I'll try to make that happen in the next week or so. 
> 
> However, I must warn you that this is not a very fast approach for any interpretive language. You really should avoid iterating in Python on all the pixels unless the image is of trivial size. Using a tuple to perform computation is an additional burden too. Generally it mean looping those nested elements too.
> 
> There is a very large selection of image operators, and function available. There is a good chance you can do the majority of you computation on the whole image at once. Which will be significantly more efficient. Take for example the function below to generate a Marschner-Lobb function.
> 
> def marschner_lobb(size=40, alpha=0.25, f_M=6.0):
>     img = sitk.PhysicalPointSource( sitk.sitkVectorFloat32, [size]*3, [-1]*3, [2.0/size]*3)
>     imgx = sitk.VectorIndexSelectionCast(img, 0)
>     imgy = sitk.VectorIndexSelectionCast(img, 1)
>     imgz = sitk.VectorIndexSelectionCast(img, 2)
>     del img
>     r = sitk.Sqrt(imgx**2 + imgy**2)
>     del imgx, imgy
>     pr = sitk.Cos((2.0*math.pi*f_M)*sitk.Cos((math.pi/2.0)*r))
>     return (1.0 - sitk.Sin((math.pi/2.0)*imgz) + alpha*(1.0+pr))/(2.0*(1.0+alpha))
> 
> 
> If there is some specific computation that you are trying todo, please describe it so I perhaps can recommend a sequence of filters and operator to accomplish it.
> 
> Brad
> 
> 
> 
> On Jan 17, 2013, at 3:34 AM, Ariel Hernán Curiale <curiale at gmail.com> wrote:
> 
>> Hi Bradley,
>> 
>> Thanks for your reply. I'm using SimpleITK version 0.5.1. I just want to have a way to read the pixel value to perform some computation and create another image with this value (another VectorImage) I prefer to obtain a python tuple or a list like the Image.GetSize().
>> 
>>  Pd: I'll try later the 0.6rc1 version.
>> Thanks
>> __________________________________
>> | Ariel Hernán Curiale Ph.D Student
>> | ETSI Telecomunicación
>> | Universidad de Valladolid
>> | Campus Miguel Delibes
>> | 47011 Valladolid, Spain
>> | Phone: 983-423000 ext. 5590
>> | Web: www.curiale.com.ar
>> |_________________________________
>> 
>> El 16/01/2013, a las 20:25, Bradley Lowekamp escribió:
>> 
>>> Hello,
>>> 
>>> What version of SimpleITK are you using?
>>> 
>>> With 0.6rc1 there have been major improvements to support multi-dimensional slice based indexing. Which incorporates start:stop:stride, for the physical dimensions not the vector components. It appears that there may been some regression in behavior with the GetPixel method... What are you currently able to get a scalar component value? And you say you expect a "vector value" do you want a wrapped std::vector, a python tuple, or what?
>>> 
>>> As a couple people have asked me about the slice based indexing and vector images. I am thinking that maybe the should be done before the 0.6 release is done.
>>> 
>>> Please let me know what you need and expect the behavior to be.
>>> 
>>> Thanks,
>>> Brad
>>> 
>>> 
>>> 
>>> On Jan 16, 2013, at 12:56 PM, Ariel Hernán Curiale <curiale at gmail.com> wrote:
>>> 
>>>> Hi all,
>>>> 
>>>> This is my first time with SimpleITK and looks really great. I'm trying to use it for a quick developments (SimpleITK + Python) but I don't know how I can get the pixel value of a VectorImage. Could Anyone give some tips about it ?
>>>> Is there a way to get the vector instead a single value or I need to use a filter to get the vector value ? 
>>>>  
>>>> Thanks a lot,
>>>> __________________________________
>>>> | Ariel Hernán Curiale Ph.D Student
>>>> | ETSI Telecomunicación
>>>> | Universidad de Valladolid
>>>> | Campus Miguel Delibes
>>>> | 47011 Valladolid, Spain
>>>> | Phone: 983-423000 ext. 5590
>>>> | Web: www.curiale.com.ar
>>>> |_________________________________
>>>> 
>>>> _____________________________________
>>>> Powered by www.kitware.com
>>>> 
>>>> Visit other Kitware open-source projects at
>>>> http://www.kitware.com/opensource/opensource.html
>>>> 
>>>> Kitware offers ITK Training Courses, for more information visit:
>>>> http://www.kitware.com/products/protraining.php
>>>> 
>>>> Please keep messages on-topic and check the ITK FAQ at:
>>>> http://www.itk.org/Wiki/ITK_FAQ
>>>> 
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://www.itk.org/mailman/listinfo/insight-users
>>> 
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20130117/68f644aa/attachment.htm>


More information about the Insight-users mailing list