Я пытаюсь спроектировать живое видео с веб-камеры в качестве текстуры в Panda3D.Но изображение нечеткое и создается несправедливое количество шума.
Я могу получить точное и быстрое видео в оттенках серого / черно-белом.
Здесь мне нужно проецировать:
def room_maker(self):
room = self.loader.loadModel("location_of_model")
room.reparentTo(self.render)
room.setScale(1, 1, 0.8)
room.setPos(5, 1, 3)
room.set_hpr(360, 0, 0)
return room
Это мой проектор
def projector(self):
proj = self.render.attachNewNode(LensNode('proj'))
lens = PerspectiveLens()
proj.node().setLens(lens)
proj.node().showFrustum()
proj.find('frustum').setColor(1, 0, 0, 1)
proj.reparentTo(self.camera)
return proj
Моя текстура настроена:
def my_setTexture(self):
tex = Texture()
tex.setWrapU(SamplerState.WMBorderColor)
tex.setWrapV(SamplerState.WMBorderColor)
tex.setup2dTexture(self.h, self.w,
Texture.T_unsigned_byte, Texture.FRgb)
return tex
self.h и self.w - это высота и ширина (480, 640)
Мое хранилище текстур
self.ts = TextureStage('ts')
self.ts.setSort(1)
И это в основном цикл, который обновляет текстуру и использует opencv
def updateTex(self, task):
success, frame = self.cap.read()
frame = cv2.flip(frame, 0)
self.tex.setRamImage(frame)
# overwriting the memory with new buffer
self.room.projectTexture(self.ts, self.tex, self.proj)
# now apply it to the card
return task.cont
Мне нужно четкое живое видео, воспроизводимое на модели в качестве текстуры,Но результат я получаю размытым и шумным.
Мой вывод: