Good morning Brian or everyone,
I read the topics in
http://groups.google.com/group/comp.lang.idl-pvwave/browse_f rm/thread/ec571edc54c357e1/9c81f8b21954e471?tvc=1&q=lars en#9c81f8b21954e471,
as you recommended.
I dont know why but im still having a lot of trouble with pvwave.
Honnestly, im not an expert in programming. First I tryed to open the
apple routine at http://people.bu.edu/balarsen/Home/IDL/Entries/2009/4/6_Imag e_registration_for_c_correlate.html.
It didnt work at all! What should I do with the two routines, do I
have to put in the same file? the routine "wheretomulti" before, and
than the image-registration. Right? I tryed to do it, I also tryed to
have 2 differents files in the same folder, but when i tryed to
compile there was a lot of synthax problems. Maybe im not using the
software correctly? It seems that the software finds the file he is
supposed to compile, but he doesnt understand it at all.
After i tryed to run the code that wox made, but also didnt work, i
changed the name of the rose picture to one picture that i had, didnt
work.
I would be really thankful if someone are able to help me. Im working
for a multinational company in france, my boss gave this part to me as
a challenge!
thanks
ps: wox's code
CODE:
;------------------------
pro test
path = Filepath(Subdir=['examples', 'data'], 'rose.jpg')
read_jpeg, path, img, /true
img = 0.3*Reform(img[0,*,*]) + 0.59*Reform(img[1,*,*]) +
0.11*Reform(img[0,*,*])
kernelSize = [10,10]
kernel = REPLICATE((1./(kernelSize[0]*kernelSize[1])), $
kernelSize[0], kernelSize[1])
img2= CONVOL(img, kernel, /CENTER, /EDGE_TRUNCATE)
print,image_equal(img,img2,/outid)
end;pro test
;------------------------
function
image_equal,img1,img2,npix=npix,shifttol=shifttol,Rtol=Rtol, outid=outid
; Image offsets or scales don't matter
; npix: subimage pixels for cross-correlation
; shifttol: subimage shift tollerance
; Rtol: cross-correlation tollerance
s1=size(img1,/dim)
s2=size(img2,/dim)
msize=s1[0]<s1[1]<s2[0]<s2[1]
if not keyword_set(npix) then npix=fix(msize*0.4)>10 ; 40% of the size
npix<=msize
if n_elements(shifttol) eq 0 then shifttol=(msize*0.01)>1 ; 1% of the
size
if not keyword_set(Rtol) then Rtol=0.9
; Subimages in img2
nsub=s2/npix
nx=nsub[0]
ny=nsub[1]
x0=npix*indgen(nx)
x1=[x0[1:*],s2[0]]-1
y0=npix*indgen(ny)
y1=[y0[1:*],s2[1]]-1
; img2 subimages in img1
xoff=lonarr(nsub)
yoff=xoff
xyccor=fltarr(nsub)
if keyword_set(outid) then img2recon=img1*0
; Cross-correlate subimages of img2 with img1
for i=0,nx-1 do $
for j=0,ny-1 do begin
sub=img2[x0[i]:x1[i],y0[j]:y1[j]]
ssub=size(sub,/dim)-1
; Number of sub-shifts in img1
noffx=s1[0]-ssub[0]
noffy=s1[1]-ssub[1]
ccor=fltarr(noffx,noffy)
; Correlate sub with img1
for k=0,noffx-1 do $
for l=0,noffy-1 do $
ccor[k,l]=c_correlate(sub,img1[k:k+ssub[0],l:l+ssub[1]],0)
; Sub image offset and cross-correlation
mccor=max(ccor,moff)
k=moff mod noffx
l=moff/noffx
xoff[i,j]=k
yoff[i,j]=l
xyccor[i,j]=mccor
if keyword_set(outid) then begin
img2recon[k,l]=sub
print,'Progress: ',(i*ny+j+1.)/(nx*ny)*100,'%'
endif
endfor
; Check whether img2 and img1 are equal
bsame=total(xyccor lt Rtol,/pres) eq 0
bsame and= total(rebin(total(xoff,2)/ny,nx,ny)-xoff gt shifttol,/pres)
eq 0
bsame and= total(rebin(reform(total(yoff,1),1,ny)/nx,nx,ny)-yoff gt
shifttol,/pres) eq 0
if keyword_set(outid) then begin
window
tvscl,img1,0
tvscl,img2,1
tvscl,img2recon,2
tvscl,img2-img2recon,3
xyouts,0.1,0.7,'img1',/normal,color=100
xyouts,0.3,0.7,'img2',/normal,color=100
xyouts,0.5,0.7,'reconstructed img2',/normal,color=100
xyouts,0.7,0.7,'img1 - reconstructed img2',/normal,color=100
isurface,xyccor
endif
return,bsame
end;function image_equal
On 21 avr, 08:58, Fabinho <fabioviann...@gmail.com> wrote:
> thanks a lot! I will read it and get started!
> thks
>
> On 21 avr, 00:20, Brian Larsen <balar...@gmail.com> wrote:
>
>> I would start with a read through this post and see if that provides a
>> starting point.
>
>> http://groups.google.com/group/comp.lang.idl-pvwave/browse_f rm/thread...
>
>> Cheers,
>
>> Brian
>
>> ------------------------------------------------------------ --------------
>> Brian Larsen
>> Boston University
>> Center for Space Physicshttp://people.bu.edu/balarsen/Home/IDL
>
>
|