这是我的代码,运行起来没有任何问题。但是,我不想手动从一个图像移动到另一个图像,因为我在文件夹中有超过2000个图像。我需要编辑什么来自动运行文件夹中的图像,并获得x,y,z坐标?
import os
import cv2
import mediapipe as mp
import time
from os import listdir
import matplotlib.pyplot as plt
from pathlib import Path
import glob
import numpy
path = glob.glob("")
for file in path:
img = cv2.imread(file)
mpDraw = mp.solutions.drawing_utils
mpFaceMesh = mp.solutions.face_mesh
facemesh = mpFaceMesh.FaceMesh(max_num_faces=1)
drawSpec = mpDraw.DrawingSpec(thickness=1, circle_radius=2)
rgb_image = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
result = facemesh.process(rgb_image)
if result.multi_face_landmarks:
for faceLms in result.multi_face_landmarks:
mpDraw.draw_landmarks(img, faceLms, mpFaceMesh.FACEMESH_CONTOURS,
drawSpec, drawSpec)
for lm in faceLms.landmark:
print(lm)
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
2条答案
按热度按时间iyr7buue1#
一个类似
应将每个文件各自的标志打印到标准输出。
您可以使用shell(
python script.py > foo.txt
)重定向该输出,或者提出适合您的目的的更优雅的输出格式。h7wcgrx32#
如果我理解得很好,代码运行得很好,但是您不希望看到所有图像都弹出到屏幕上,并且每次都从一个图像转到下一个图像:仅删除CV2查看器步骤:
它应该在不打开每个图像的情况下