summaryrefslogtreecommitdiffstats
path: root/Mac/Contrib/ImageHelpers/MovieUtils.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Contrib/ImageHelpers/MovieUtils.py')
-rw-r--r--Mac/Contrib/ImageHelpers/MovieUtils.py269
1 files changed, 0 insertions, 269 deletions
diff --git a/Mac/Contrib/ImageHelpers/MovieUtils.py b/Mac/Contrib/ImageHelpers/MovieUtils.py
deleted file mode 100644
index 89762f4..0000000
--- a/Mac/Contrib/ImageHelpers/MovieUtils.py
+++ /dev/null
@@ -1,269 +0,0 @@
-from Carbon import Qt
-from Carbon import QuickTime
-import macfs
-from Carbon import Qd
-from Carbon.QuickDraw import srcCopy
-from ExtPixMapWrapper import ExtPixMapWrapper
-from Carbon.Qdoffs import *
-import ImageMac
-import W
-
-
-
-
-def GetFrames(m):
- frameCount=0
- theTime=0
- type=QuickTime.VideoMediaType
- #type='MPEG'
- flags=QuickTime.nextTimeMediaSample
- flags=flags+QuickTime.nextTimeEdgeOK
-
- while theTime>=0:
- (theTime,duration)=m.GetMovieNextInterestingTime(flags,1,type,theTime,0)
- #print "theTime ",theTime," duration ",duration
- frameCount=frameCount+1
- flags = QuickTime.nextTimeMediaSample
-
-
- return frameCount-1
-
-def GetMovieFromOpenFile():
- fss, ok = macfs.StandardGetFile(QuickTime.MovieFileType)
- mov = None
- if ok:
- movieResRef = Qt.OpenMovieFile(fss, 1)
- mov, d1, d2 = Qt.NewMovieFromFile(movieResRef, 0, QuickTime.newMovieActive)
-
- return mov
-
-
-class ExtMovie:
- def __init__(self,mov):
-
- self.frames=0
- self.frameArray=[]
- self.movie=mov
- self._countFrames()
- r=self.movie.GetMovieBox()
- self.myRect=(0,0,r[2]-r[0],r[3]-r[1])
- self.movie.SetMovieBox(self.myRect)
- self.pm=ExtPixMapWrapper()
- self.pm.left=0
- self.pm.top=0
- self.pm.right=r[2]-r[0]
- self.pm.bottom=r[3]-r[1]
- self.gw=NewGWorld(32,self.myRect,None,None,0)
- self.movie.SetMovieGWorld(self.gw.as_GrafPtr(), self.gw.GetGWorldDevice())
- self.GotoFrame(0)
-
- def _countFrames(self):
- #deve contare il numero di frame, creare un array con i tempi per ogni frame
- theTime=0
- #type=QuickTime.VIDEO_TYPE
- type=QuickTime.VideoMediaType
- flags=QuickTime.nextTimeMediaSample+QuickTime.nextTimeEdgeOK
-
- while theTime>=0:
- (theTime,duration)=self.movie.GetMovieNextInterestingTime(flags,1,type,theTime,0)
- self.frameArray.append((theTime,duration))
- flags = QuickTime.nextTimeMediaSample
- self.frames=self.frames+1
-
-
-
- def GotoFrame(self,n):
- if n<=self.frames:
- self.curFrame=n
- (port,device)=GetGWorld()
- SetGWorld(self.gw.as_GrafPtr(),None)
- (self.now,self.duration)=self.frameArray[n]
- self.movie.SetMovieTimeValue(self.now)
- pixmap=self.gw.GetGWorldPixMap()
-
- if not LockPixels(pixmap):
- print "not locked"
- else:
-
- #Qd.EraseRect(self.myRect)
- #this draws the frame inside the current gworld
- self.movie.MoviesTask(0)
- #this puts it in the buffer pixmap
- self.pm.grab(0,0,self.myRect[2],self.myRect[3])
- UnlockPixels(pixmap)
- #self.im=self.pm.toImage()
- SetGWorld(port,device)
-
- def NextFrame(self):
- self.curFrame=self.curFrame+1
- if self.curFrame>self.frames:
- self.curFrame=0
- self.GotoFrame(self.curFrame)
-
- def isLastFrame():
- return self.curFrame==self.frames
-
-
- def GetImage(self):
- return self.pm.toImage()
-
- def GetImageN(self,n):
- self.GotoFrame(n)
- return self.pm.toImage()
-
- def GetNumeric(self):
- return self.pm.toNumeric()
-
- def GetNumericN(self,n):
- self.GotoFrame(n)
- return self.pm.toNumeric()
-
- def Blit(self,destRect):
- Qd.RGBForeColor( (0,0,0) )
- Qd.RGBBackColor((65535, 65535, 65535))
-
- #Qd.MoveTo(10,10)
- #Qd.LineTo(200,150)
- Qd.CopyBits(self.gw.GetPortBitMapForCopyBits(),Qd.GetPort().GetPortBitMapForCopyBits(),self.myRect,destRect,srcCopy,None)
-
-class MovieWin(W.Window):
-
- def __init__(self,eMovie,title="MovieWin"):
- self.ExtMovie=eMovie
-
-def test():
- import ImageFilter
- from MLab import max
- from MLab import min
- from Numeric import *
- Qt.EnterMovies()
- m=GetMovieFromOpenFile()
- em=ExtMovie(m)
- print "Total frames:",em.frames," Current frame:",em.curFrame
- #ImageMac.showImage(em.GetImage(),"frame 0",1)
- #em.GotoFrame(500)
- #ImageMac.showImage(em.GetImage().filter(ImageFilter.SMOOTH),"frame 500",2)
- #ImageMac.showImage(em.GetImageN(1000),"frame 1000",2)
- #r=array(((1,0,0,0),(0,0,0,0),(0,0,0,0),(0,0,0,0)))
- #g=array(((0,0,0,0),(0,1,0,0),(0,0,0,0),(0,0,0,0)))
- #b=array(((0,0,0,0),(0,0,0,0),(0,0,1,0),(0,0,0,0)))
- #bw=array(((0.3086,0.6094,0.0820,0)))
- #r2=array(((1,0,0,0)))
- #ImageMac.showNumeric(em.GetNumericN(0),"frame 0",1)
- #print em.GetNumericN(500).shape
- #print "original (1,1)",em.GetNumericN(0)[100,100]
- #print "product shape ",innerproduct(em.GetNumericN(0),r).shape
- #print "product (1,1) ",innerproduct(em.GetNumericN(0),r)[100,100]
-
- #ImageMac.showNumeric(ImageMac.BWImage(em.GetNumericN(50)))
- #ImageMac.showNumeric(innerproduct(em.GetNumericN(500),r),"frame 500r",2)
- #ImageMac.showNumeric(innerproduct(em.GetNumericN(500),g),"frame 500g",2)
- #ImageMac.showNumeric(innerproduct(em.GetNumericN(500),b),"frame 500b",2)
-
- #ImageMac.showNumeric(innerproduct(em.GetNumericN(500),r2),"frame 500r2",2)
- #ImageMac.showNumeric(innerproduct(em.GetNumericN(10),bw),"frame 0bw",1)
- #ImageMac.showNumeric(innerproduct(em.GetNumericN(400),bw),"frame 10bw",1)
- #colordif=(em.GetNumericN(100)-em.GetNumericN(10))+(255,255,255,255)
- #colordif=colordif/2
- #ImageMac.showNumeric(colordif,"colordif",1)
- #ImageMac.showNumeric(ImageMac.BWImage(colordif),"bwcolordif",1)
- ilut=arange(0,256)
- #ilut[118]=255
- #ilut[119]=255
- #ilut[120]=255
- ilut[121]=255
- ilut[122]=255
- ilut[123]=255
- ilut[124]=255
- ilut[125]=255
- ilut[126]=255
- ilut[127]=255
- ilut[128]=255
- ilut[129]=255
- #ilut[130]=255
- #ilut[131]=255
- #ilut[132]=255
- mlut=ones(256)
- mlut[118]=0
- mlut[119]=0
- mlut[120]=0
- mlut[121]=0
- mlut[122]=0
- mlut[123]=0
- mlut[124]=0
- mlut[125]=0
- mlut[126]=0
- mlut[127]=0
- mlut[128]=0
- mlut[129]=0
- mlut[130]=0
- mlut[131]=0
- mlut[132]=0
-
- ImageMac.showImage(em.GetImageN(100),"provaImg",2)
- ImageMac.showNumeric(em.GetNumericN(100),"provaNum",2)
- ImageMac.showImage(em.GetImageN(100).filter(ImageFilter.SMOOTH),"frame 500",2)
- #image=ImageMac.BWImage(em.GetNumericN(100))
- #ImageMac.showNumeric(image)
-
-
-
-
-
-
-
-
- #difimage=abs(image-ImageMac.BWImage(em.GetNumericN(10)))
- #ImageMac.PlotHisto(difimage,32)
- #ImageMac.showNumeric(difimage)
- #difimage=127+(image-ImageMac.BWImage(em.GetNumericN(10)))/2
- #ImageMac.PlotHisto(difimage,32)
- #ImageMac.showNumeric(difimage)
- #fimage=ImageMac.Filter3x3(16.0,(1,1,1,1,8,1,1,1,1),difimage)
- #ImageMac.showNumeric(fimage)
- #difimage2=choose(fimage.astype(UnsignedInt8),ilut)
- #ImageMac.showNumeric(difimage2)
-
- #(r,g,b,a)=ImageMac.SplitBands(em.GetNumericN(10))
- #ImageMac.showNumeric(r,"r")
- #ImageMac.showNumeric(g,"g")
- #ImageMac.showNumeric(b,"b")
- #ImageMac.showNumeric(a,"a")
- #bwdif=abs(((innerproduct(em.GetNumericN(400),bw)-innerproduct(em.GetNumericN(10),bw))+255)/2)
- #ImageMac.showNumeric(bwdif,"frame diff/bw",1)
- #ImageMac.PlotHisto(bwdif)
- #ImageMac.showNumeric(choose(bwdif.astype(UnsignedInt8),ilut),"frame diff/bw",1)
- #ImageMac.PlotHisto(choose(bwdif.astype(UnsignedInt8),ilut))
- #bwimage=ImageMac.BWImage(em.GetNumericN(100))
- #ImageMac.showNumeric((ImageMac.BWImage(em.GetNumericN(90))+ImageMac.BWImage(em.GetNumericN(110))+ImageMac.BWImage(em.GetNumericN(130))+ImageMac.BWImage(em.GetNumericN(150))+ImageMac.BWImage(em.GetNumericN(170)))/5)
- #bwdif=abs(((bwimage-ImageMac.BWImage(em.GetNumericN(10)))+255)/2)
- #ImageMac.showNumeric(bwimage,"original frame",1)
- #ImageMac.showNumeric(bwdif,"frame diff/bw",1)
- #ImageMac.PlotHisto(bwdif)
- #ImageMac.showNumeric(choose(bwdif.astype(UnsignedInt8),ilut),"frame diff/bw",1)
- #mmask=choose(bwdif.astype(UnsignedInt8),mlut)
- #ImageMac.showNumeric(255-255*mmask,"frame diff/bw",1)
- #mmask.shape=bwimage.shape
- #ImageMac.showNumeric(mmask*bwimage,"frame diff/bw",1)
-
- #ImageMac.showNumeric((innerproduct(em.GetNumericN(300),bw)-innerproduct(em.GetNumericN(0),bw)),"frame diff/bw",1)
- #ImageMac.showNumeric((innerproduct(em.GetNumericN(400)-em.GetNumericN(10),bw)),"frame diff2/bw",1)
- #cdif=em.GetNumericN(400)-em.GetNumericN(10)
- #ImageMac.showNumeric(,"frame diff2/bw",1)
-
- #ImageMac.showNumeric(innerproduct(cdif,r),"frame 500r",1)
- #ImageMac.showNumeric(innerproduct(cdif,g),"frame 500g",1)
- #ImageMac.showNumeric(innerproduct(cdif,b),"frame 500b",1)
-def test2():
- Qt.EnterMovies()
- m=GetMovieFromOpenFile()
- if m==None:
- print "no movie opened"
- else:
- em=ExtMovie(m)
- print "Total frames: ",em.frames," Current frame:",em.curFrame
- ImageMac.showImage(em.GetImage(),"frame 0",1)
-
-if __name__ == '__main__':
- test2()
- \ No newline at end of file