comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: Speed Improvement
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Speed Improvement [message #74582] Tue, 25 January 2011 05:03 Go to previous message
jeanh is currently offline  jeanh
Messages: 79
Registered: November 2009
Member
Hi,

first, you are not using sCount anywhere... remove this loop

Instead of looping through all pixels, look for the needed ones

pixelsToProcess = where(PixelArr eq E_F_ATTNMAP_HIGH_PIXEL,
countPixToProcess)

sXYcol = array_indices(pixelArr, pixelsToProcess) ;get the 2D coords

for i=0L, countPixToProcess -1 do begin
;process
endfor

Jean

On 25/01/2011 4:24 AM, Rony K Varghese wrote:
> ;Processing a picture
> for sCount = 0, 9 do begin
> for sRow = UpperRow, LowerRow do begin
> for sCol = sLeftCol, sRightCol do begin
> ; Check whether high pixels.
> if E_F_ATTNMAP_HIGH_PIXEL eq PixelArr[sCol, sRow] then
> begin
> sXCol = sCol
> sYRow = sRow
> endif
> ; from the center to the left
> for sIndex = 0, sHalfWid do begin
> if HIGH_PIXEL eq vTemp[sXCol - sIndex, sYRow] then
> begin
> PixelArr[sXCol - sIndex, sYRow] = HIGH_PIXEL
> endif else begin
> break ; break from for sIndex
> endelse
> endfor
> ; from the center to the right
> for sIndex = 0, sHalfWid do begin
> if HIGH_PIXEL eq vTemp[sXCol + sIndex, sYRow] then
> begin
> PixelArr[sXCol + sIndex, sYRow] = HIGH_PIXEL
> endif else begin
> break ; break from for sIndex
> endelse
> endfor
> ; from the center to down
> for sIndex = 0, sHalfHght do begin
> if HIGH_PIXEL eq vTemp[sXCol, sYRow+ sIndex] then
> begin
> PixelArr[sXCol, sYRow+ sIndex] = HIGH_PIXEL
> endif else begin
> break ; break from for sIndex
> endelse
> endfor
> ; from the center to up
> for sIndex = 0, sHalfHght do begin
> if HIGH_PIXEL eq vTemp[sXCol, sYRow - sIndex] then
> begin
> PixelArr[sXCol, sYRow - sIndex] = HIGH_PIXEL
> endif else begin
> break ; break from for sIndex
> endelse
> endfor
> endfor; end for sCol
> endfor; end for sRow
> endfor;end for sCount
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Crashes in IDL 7.1 & 8.0, interactive + VM mode, linux and Mac OS X
Next Topic: Re: IDL books for beginners

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 15:19:15 PDT 2025

Total time taken to generate the page: 0.00212 seconds