Php 如何基于图像中的边界框裁剪图像(以编程方式)?

Php 如何基于图像中的边界框裁剪图像(以编程方式)?,php,image,image-processing,imagemagick,gd,Php,Image,Image Processing,Imagemagick,Gd,我正在构建一个web应用程序,它需要能够根据图像中包含白色边框(没有填充)的四边形的位置裁剪图像。用户上传的所有图像都将是黑色的,因此他们不应该干扰查找边界框的算法。应用程序的这一部分应该能够处理所有类型的四边形,并将拉伸白色边框形状中包含的任何形状,以适合正方形 我在Photoshop中的惰性格式副本: 我正在使用Laravel构建这个应用程序(LAMP堆栈)。我正在研究ImageMagick和GD之类的库,但我对编程编辑图像仍然是新手。在IM或GD中是否有我可以调用的特定函数来帮助我构建应用

我正在构建一个web应用程序,它需要能够根据图像中包含白色边框(没有填充)的四边形的位置裁剪图像。用户上传的所有图像都将是黑色的,因此他们不应该干扰查找边界框的算法。应用程序的这一部分应该能够处理所有类型的四边形,并将拉伸白色边框形状中包含的任何形状,以适合正方形

我在Photoshop中的惰性格式副本:


我正在使用Laravel构建这个应用程序(LAMP堆栈)。我正在研究ImageMagick和GD之类的库,但我对编程编辑图像仍然是新手。在IM或GD中是否有我可以调用的特定函数来帮助我构建应用程序的这一部分?有没有更好的PHP库能够做到这一点?我不一定要代码;我只是想知道在我构建这个工具之前应该先使用哪些工具。

您可能需要查看OpenCV以识别Rectage。GD和image magic擅长使用过滤器编辑图像,但它们不做很多(或任何?)的对象检测


请参阅:

如果我理解您的要求,可以将Imagemagick用于此类应用程序。要更改图像的透视图,请查看:

要在扭曲后裁剪图像,请查看:

创建bash循环来完成这两项任务是很容易的。大概是这样的:

 ## first distort the images

 for i in *.jpg ##or whatever format you have (.tiff, pdf, etc..) 
 do 
 convert $i -distort Perspective out_file.png ## where you give coordinates into the perspective method
 done

 ## now to crop the distorted images
 for i in *.png 
 do
 convert $i -crop out_file.jpg ## where you give the coordinates of the new rectangle to the crop method
 done
上面的代码只是一个起点,需要根据我上面提到的链接进行填充。快乐的脚本