【发布时间】: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
问题是,如何将上面的命令转换成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)而不是百分比。
标签: php imagemagick ocr imagemagick-convert