视频猫耳滤镜太摇摆不定
Video cat ear filter too wiggly
我正在制作一个视频滤镜,可以像 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)
人们通常如何处理这个问题?
"The problem is, because of detection, the coordinates changes a little bit every frame so the filter is too wiggly."
我不使用 Python 或 OpenCV,因此无法向您展示示例代码。您可以尝试一些建议。
(1) 相机噪音可能会影响检测。尝试对输入进行柔和模糊以平滑像素。测试不同的模糊级别。
(2) 尝试每秒更新一次耳朵位置,然后微调到每秒 X 次。
(3) 比较当前帧与前一帧的耳朵位置。如果距离太小(1 或 2 个像素),则忽略并使用旧位置。
我正在制作一个视频滤镜,可以像 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)
人们通常如何处理这个问题?
"The problem is, because of detection, the coordinates changes a little bit every frame so the filter is too wiggly."
我不使用 Python 或 OpenCV,因此无法向您展示示例代码。您可以尝试一些建议。
(1) 相机噪音可能会影响检测。尝试对输入进行柔和模糊以平滑像素。测试不同的模糊级别。
(2) 尝试每秒更新一次耳朵位置,然后微调到每秒 X 次。
(3) 比较当前帧与前一帧的耳朵位置。如果距离太小(1 或 2 个像素),则忽略并使用旧位置。