View Single Post
  #9  
Old 05-13-2011, 06:14 AM
Darkmax Darkmax is offline
Member
 
Join Date: Feb 2010
Posts: 108
try this code:
Code:
import Image
import cv
import viz
import viztask

#Quad to display the image on vizard
tex = viz.addBlankTexture([1,1])
quad = viz.addTexQuad(pos=(0,1.8,2),texture = tex)

def PIL_TO_VIZARD(image,texture):
    """Copy the PIL image to the Vizard texture"""
    im = image.transpose(Image.FLIP_TOP_BOTTOM)
    texture.setImageData(im.convert('RGB').tostring(),im.size)

def opencvMain():
	capture = cv.CaptureFromCAM(-1)#conect to a camera
	
	while True:
		src = cv.QueryFrame(capture) #Image from camera in BGR format
		dst = cv.CreateImage(cv.GetSize(src),cv.IPL_DEPTH_8U,3)
		cv.CvtColor( src, dst, cv.CV_BGR2RGB) #Converting BGR to RGB
		
		#Converting opencv image to PIL image
		pil = Image.fromstring("RGB", cv.GetSize(dst), dst.tostring())
		
		#Aply image to texture
		PIL_TO_VIZARD(pil,tex)
		
		cv.WaitKey(10)
		yield viztask.waitTime(0)
		
viztask.schedule(opencvMain())

viz.go()
Reply With Quote