【问题标题】:How can I detect borders of a piece of paper inside of an image and crop it using ImageMagick?如何检测图像内一张纸的边界并使用 ImageMagick 裁剪它?
【发布时间】:2011-08-15 09:26:18
【问题描述】:

我正在尝试从照片中裁剪纸质文档。例如,有人为文档拍照并将其发送到服务器,然后将其编辑为看起来像扫描文档。如何检测文档的边框并使用 ImageMagick 对其进行裁剪?

谢谢

【问题讨论】:

标签: php imagemagick


【解决方案1】:

您想使用带有-trim option 的转换命令来裁剪纯色边框,并且由于扫描图像,-fuzz option 确保即使颜色不完美,也可以完全裁剪边框固体。

所以是这样的:

convert input.jpg -fuzz 2% -trim output.jpg

把它翻译成 PHP 代码,你会得到这样的结果:

$image = new Imagick('input.jpg');
$image->trimImage(2); // Trim the image with a 2% fuzz
$image->writeImage('output.jpg');

【讨论】:

  • 谢谢,詹姆斯。这似乎是关于我需要的。有些图片会有不同大小的边框,有什么方法可以检测出绒毛应该是多少?
  • 最简单的方法是尝试一些典型的用户上传内容的示例。假设边框是相当纯色并且图像对比度很好,那么模糊设置不应该太高。
  • 感谢您的帮助,詹姆斯。通过使用 Jcrop 和 GD 库,我能够完成一些工作。我只是无法让它足够好地检测边界。
猜你喜欢
  • 2015-07-29
  • 1970-01-01
  • 1970-01-01
  • 2019-12-10
  • 1970-01-01
  • 2017-11-07
  • 2021-04-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多