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()