【问题标题】:crop landmarks part of the face using Google vision API使用谷歌视觉 API 裁剪面部的地标部分
【发布时间】:2017-07-10 20:18:00
【问题描述】:

我正在尝试使用 google vision api 从图像中裁剪出人脸。我了解如何从他们的示例代码中获取地标。但我不知道如何使用这些地标裁剪脸部。谁能提供一些伪代码或指导我如何进一步谢谢。

【问题讨论】:

  • 您使用的是哪种 mimetype? Jpeg、PNG、GIF 等 ?您是否研究过 Imagemagick、opencv 等图像处理库? Java 还提供了可能支持裁剪的 BufferedImage。但要支持 CMYK 或 Gif 等图像,则必须使用 ImageMagick/twelvemonkeys 等。请提供更多信息。此外,网上有足够的资源来完成这些简单的任务。 stackoverflow.com/help/how-to-ask

标签: java android google-vision


【解决方案1】:

以下代码演示了使用云视觉客户端检索图像中人脸的顶点(假设以下文件名为faces.py):

import io
import sys

from google.cloud import vision

vision_client = vision.Client()
with io.open(sys.argv[1], 'rb') as image_file:
    content = image_file.read()
image = vision_client.image(content=content)

faces = image.detect_faces()
print('Faces:')
for face in faces:
    bounds = ''
    for bound in face.bounds.vertices:
        bounds += ('{' + str(getattr(bound, 'x_coordinate', 0)) + ',' +
                   str(getattr(bound, 'y_coordinate', 0)) + '}')
    print('face bounds: {}'.format(bounds))

您的 requirements.txt 看起来像:

google-cloud-vision==0.22.0

您可以将应用程序运行为:

virutalenv env && source env/bin/activate
pip install -r requirements.txt
python faces.py image.jpg

输出是:

face bounds: {105,460}{516,460}{516,938}{105,938}

这些将是您将剪辑到的位置以突出显示covered in depth elsewhere 的脸部。

【讨论】:

    猜你喜欢
    • 2016-07-03
    • 2018-03-24
    • 2015-08-25
    • 2020-09-09
    • 1970-01-01
    • 2017-03-24
    • 2017-06-04
    • 2017-06-14
    • 1970-01-01
    相关资源
    最近更新 更多