我如何检测图像内的一张纸的边界并使用ImageMagick裁剪它


How can I detect borders of a piece of paper inside of an image and crop it using ImageMagick?

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

谢谢

您希望使用转换命令和-trim选项来裁剪纯色边框,并且由于图像是扫描的,因此-fuzz选项可以确保trim完全裁剪边框,即使颜色不是完全纯色。

所以像这样:

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');