如何将命令 imagemagick 转换为 php 代码?
Posted
技术标签:
【中文标题】如何将命令 imagemagick 转换为 php 代码?【英文标题】:How to convert command imagemagick to php code? 【发布时间】:2019-08-27 17:57:34 【问题描述】:我想使用 OCR。但是图像无法完美读取,所以我正在将图像转换为删除噪声背景,Original Images。
然后,我运行这个命令:
convert -colorspace gray -modulate 120 -contrast-stretch 10%x80% -modulate 140 -gaussian-blur 1 -contrast-stretch 5%x50% +repage -negate -gaussian-blur 4 -negate -modulate 130 original.jpeg clean.jpeg
Images Result
问题是,如何将上面的命令转换成php?
好吧,我很困惑在 php 中使用 imagick
。
我的代码(这是我所知道的):
$image = new Imagick('captcha.png');
$image->modulateImage(450, 0, 500);
$image->writeImage("output.jpg");
来自 PHP Imagick 的结果:HERE
我知道,这是不同的配置号,但结果不远。
有什么建议吗?
==== answare(谢谢fmw42)
$image = new Imagick('captcha.png');
$image->thresholdimage(0.1 * \Imagick::getQuantum(), 134217727);
$image->shaveImage(2, 1);
$image->writeImage("output.jpg");
【问题讨论】:
你试过什么?请使用 Imagick 编码发布您的尝试,以便更正。或者,只需将命令行放在 PHP exec() 中并以这种方式运行。对于 Imagick,请参阅 php.net/manual/en/book.imagick.php 或 Google 获取示例。 我确实阅读了 php 文档,但它看起来不像命令。我的代码:$image = new Imagick('captcha.png'); $image->modulateImage(450, 0, 500); $image->writeImage("output.jpeg");
最好将您的代码添加到您的原始帖子中。抱歉,我不是 Imagick 专家。请注意,您的 modulateImage 参数与 ImageMagick 命令行中的参数不同。您的 Imagick 代码将转换为灰度,因为饱和度为 0,但它也会改变亮度和颜色。请澄清这一点,或者你想用你的 Imagick 代码做什么。 imagemagick 代码似乎只是在调整亮度。请清楚地解释您要达到的目标。如果您发布要清理的输入图像的链接,那么也许我们可以建议更好的技术。
我的错,对不起。我一直在编辑带有图像示例和结果的第一页。
只是阈值您的图像。在 ImageMagick convert img.png -threshold 0% x.png
。根据需要将 0% 更改为其他值。在 Imagick 中,请参阅 php.net/manual/en/imagick.thresholdimage.php。值在 ImageMagick 版本的量程范围内(Q16 默认为 0 到 65535)而不是百分比。
【参考方案1】:
要在 ImageMagick 中删除黑色边框和阈值,请执行
输入:
convert img.png -shave 1x1 -threshold 0 result.png
因为 8 和 7 触摸,如果 OCR 有效,我会感到惊讶。
对于 Imagick,请参阅
https://www.php.net/manual/en/imagick.thresholdimage.php https://www.php.net/manual/en/imagick.shaveimage.php
【讨论】:
谢谢,它在 OCR 上运行良好,有以下建议 有什么建议? 来自你给我的php源码。以上是关于如何将命令 imagemagick 转换为 php 代码?的主要内容,如果未能解决你的问题,请参考以下文章
将 ImageMagick 命令转换为 GraphicsMagick