我正在做一个视频过滤器,增加猫耳朵给你像Snapchat镜头。我正在使用opencv4和Dlib。Dlib负责检测脸部。问题是,由于检测坐标的变化,每个帧的滤波器都太过晃动。
我试着每2-3帧换一次耳朵,但变化不大。
while True:
_, frame = cap.read()
ear_mask.fill(0)
gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = detector(frame)
for face in faces:
ear_width, ear_height, top_left, degree = generateNewEar(frame)
frame = generateImage(frame, ear_width,
ear_height, top_left, degree)
cv2.imshow("Frame", frame)人们通常如何处理这个问题?
发布于 2019-07-27 06:32:59
“问题是,由于检测,每个帧的坐标都有一点变化,所以滤波器太不稳定了。”
我不使用Python或OpenCV,所以我不能向您展示示例代码。一些你可以尝试的建议。
(1)摄像机噪声会影响检测结果。尝试输入上的软模糊,以平滑像素。测试不同的模糊等级。
(2)尝试每秒钟更新一次ear位置,然后微调到每秒X次。
(3)比较当前帧与前帧的耳朵位置。如果距离太小(1或2个像素),则忽略并使用旧位置。
https://stackoverflow.com/questions/57132195
复制相似问题