Dear IDL users,
I would really appreciate some help in removing a nested FOR loop.
FOR x=0, image_width-1 DO BEGIN
FOR y=0, image_height-1 DO BEGIN
; Write the current pixel value
results[(x*mtf_region_height)+y, 1] = image[x,y]
; Calculate the distance of the current pixel from the line defined
by the
; two points (x1, y1) and (x2, y2).
results[(x*image_height)+y, 0] = ( (y1-y2)*x + (x2-x1)*y + (x1*y2 -
x2*y1) ) / SQRT( (x2-x1)^2 + (y2-y1)^2 )
ENDFOR
ENDFOR
'image' is a 2d image array
I want to work out the distance of each pixel from a line that is
defined by the two points (x1, y1), (x2, y2) and store this distance,
together with the pixel value in a 'results' array. The 'results'
array has the dimensions [(image_height*image_width), 2].
The above bit of code works but is a bit slow.
Any advice would be much appreciated.
Thanks,
David
Northampton, UK


|