我正在构建一个Web应用程序,它需要能够根据图像中包含的带有白色边框(并且没有填充)的4边形状的位置裁剪图像。用户上传的所有图像都将变暗,因此不应干扰算法以查找边界框。应用程序的这一部分应该能够处理所有类型的四边形,并将拉伸白边形状中包含的任何内容以适合正方形。
我在Photoshop中的懒惰演绎:http://i.stack.imgur.com/xJjoL.png
我正在使用Laravel构建此应用程序(LAMP堆栈)。我正在寻找像ImageMagick和GD这样的库,但我仍然是以编程方式编辑图像的新手。我可以调用IM或GD中的特定功能来帮助我构建应用程序的这一部分吗?是否有更好的PHP库能够执行此操作?我不是必须要求代码;在构建之前,我只想知道应该从哪些工具开始。
答案 0 :(得分:1)
如果我理解你的要求,Imagemagick可以用于这种类型的应用程序。要更改图像的透视图,请查看:
http://www.imagemagick.org/Usage/distorts/#perspective
要在扭曲后裁剪图像,请查看:
http://www.imagemagick.org/Usage/crop/#crop
制作一个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
上面的代码只是一个起点,需要根据我上面提到的链接进行填充。快乐的脚本!
答案 1 :(得分:0)
您可能需要查看OpenCV以识别rectagle。 GD和图像魔法擅长使用滤镜编辑图像,但它们不会做很多(或任何?)对象检测。
请参阅:https://github.com/ProGM/OpenCV-for-PHP/wiki/Installation-guide