Pregunta

Hola estoy queriendo utilizar la biblioteca de imágenes de Python para recortar imágenes a un tamaño específico para un sitio web. Tengo un problema, estas imágenes tienen el propósito de mostrar las caras de la gente, así que necesito para recortar automáticamente en base a ellos.

Sé detección de rostros es un concepto difícil, así que estoy pensando en usar el "nofollow" face.com API http://developers.face.com/tools/#faces/detect cual está bien para lo que yo quiero hacer.

Me estoy un poco atascado en cómo iba a utilizar estos datos para recortar un área de selección basado en la mayoría de los rostros.

¿Alguien puede ayudarme?

Joe

¿Fue útil?

Solución

Hay una biblioteca de Python que tiene un concepto de smart-cultivo que, entre otras opciones, puede utilizar la detección de rostros para hacer un recorte más inteligente. Utiliza OpenCV bajo el capó, pero que están aislados de la misma. https://github.com/globocom/thumbor

Otros consejos

Si tiene alguna rectángulo que desea sobre el consumo de una imagen, esto es lo que podría intentar en primer lugar:

  1. (opcional) Si la imagen es grande, hacer un cultivo cuadrado áspero centrada en la cara con dimensiones sqrt(2) más grande que el borde más largo (si rectangular). Peor de los casos (45 ° de rotación), éste seguirá agarrar todo lo importante.
  2. Rotar basada en la orientación de la cara (algo así como rough_crop.rotate(math.degrees(math.atan(ydiff/xdiff)), trig es divertido)
  3. Hacer una cosecha final. Si lo hizo el cultivo inicial, la cara debe estar centrado, de lo contrario tendrá que transformar (girar) todas sus viejas coordenadas de la nueva imagen (más trig!).
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top