智能图像裁剪

时间:2012-01-28 20:52:00

标签: php image

我有点坚持尝试向客户解释我的主题,通过智能地找出甜蜜和正确的位置来裁剪图像根本不是一件容易的事。我甚至怀疑这是否100%可能。

比如说,在肖像中,如果要将图像裁剪为正方形或比例,是否可以将焦点对准脸部并相应地进行裁剪。

如果您想了解更多详情,请提出以下问题 http://getsatisfaction.com/autochrome/topics/portrait_image_thumbnail

6 个答案:

答案 0 :(得分:1)

在我看来,您的客户所面临的问题是宽高比。

您可以从那里确定源宽高比和裁剪/调整。只需使用getImageGeometery()

http://www.php.net/manual/en/imagick.getimagegeometry.php

或者,如果使用GD:

http://www.php.net/manual/en/function.getimagesize.php

答案 1 :(得分:1)

裁剪图像的“正确”位置是主观的。确定对场景构图重要的是与科学一样多的艺术。如果一个计算机算法可以完美地解决这个问题,你可以使用它(以及遍布世界各地的大量摄像机)来赢得每年的国家地理摄影比赛: - )。

那就是说,如果你可以更精确地定义感兴趣的图像部分 - 比如你提到的面孔 - 那么问题从“几乎不可能”变为“非常困难”。您可以使用面部检测算法,然后裁剪到包含所有面的最小边界框。

答案 2 :(得分:0)

让用户选择要裁剪的照片部分。将偏移量添加到GD的裁剪参数中。祝你好运!

答案 3 :(得分:0)

一种流行的解决方案是调整图像的大小并使其居中并裁剪剩下的内容:如果原件太宽则为左右,如果太高则为顶部和底部。由于上面提到的原因,它远非完美,但很容易实现自动化。

使用此要点中的gd库执行此示例代码:https://gist.github.com/1695782

答案 4 :(得分:0)

(希望您已经找到了解决方案,因为这是一个非常古老的问题。)我发现很少有选项可以提供帮助:

  • Cloudinary API - 它支持一些高级裁剪方法,如基于人脸检测的自动裁剪和裁剪。我目前正在为一个爱好项目探索这个。
  • Google Vision API - 我认为这可能是一种矫枉过正,但你可以用它来裁剪肖像,因为它具有良好的面部检测功能并显示裁剪提示。我已将此用于业余爱好项目并且运作良好。
  • Grafika - 这个用于PHP的新图形库拥有智能裁剪功能,它可以检测图像的重要区域并确保在裁剪时保留它(还没有尝试过)

答案 5 :(得分:0)

您可以尝试ImageKit.io。开箱即用提供smart cropping。它内部使用面部和特征检测来进行智能作物的必要计算。 ImageKit还具有面部修剪模式,可以从原始图像中挑选出面部以创建缩略图。