Hello.
Recently I have installed OpenCV and OpenPose for tracking the head of a 3d character created,rigged and animated in Blender 2.81 on Windows 10. When I use OpenCV I use this addon : FacialMotionCapture
and when I use Open Pose,I have installed this addon :
blender-addon-openpose
What's the problem ? The problem is that the addon written for OpenCV works good,but the addon for Openpose doesn't : it seems not able to recognize my (virtual) webcam or any video file. I have no python experience,but I have looked inside the addons codes to try to understand why.
Please check the relevant python code that's inside the OpenCV / Facial motion capture addon below :
# Show camera image in a window
cv2.imshow('Output', image)
# Show camera image in a window
cv2.imshow('Output', image)
cv2.waitKey(1)
return { 'PASS_THROUGH'}
def init_camera(self):
if self._cap == None:
self._cap = cv2.VideoCapture(0)
self._cap.set(cv2.CAP_PROP_FRAME_WIDTH, self.width)
self._cap.set(cv2.CAP_PROP_FRAME_HEIGHT, self.height)
self._cap.set(cv2.CAP_PROP_BUFFERSIZE, 1)
time.sleep(1.0)
Now check the relevant python code that's inside the OpenPose addon below :
class Camera:
'''
Utility class embedding a camera, its parameters and buffers
'''
def __init__(self,
path: str) -> None:
self._path = path
self._camera = cv2.VideoCapture()
self._camera.open(path)
self._shape: Tuple[int, int, int] = (0, 0, 0)
self._bbox = [180, 120, 270, 270]
self._bbox_new = self._bbox
class OpenPoseWrapper:
def __init__(self) -> None:
self._cameras: List[Camera] = []
self._image_buffer: Optional[bpy.types.Image] = None
self._camera_paths: List[str] = ['/dev/video0', '/dev/video1']
self._is_stereo = False
self._is_stereo_calibrated = False
What I want to know is the reason why OpenCV is able to grab the video file that I use,instead the OpenPose addon is not able to do that. I suspect that the code of the OpenPose addon has been written for Linux,but I'm using Windows 10. For this reason I should change this line :
self._camera_paths: List[str] = ['/dev/video0', '/dev/video1']
Infact in Windows 10 there isn't any kind of device like that. So,how should I change the code if I want that Windows 10 is able to detect the video file that the code written for OpenCV is able to detect ?
About the recuiterMember since Mar 14, 2020 Rory Millikin
from Hubei, China