用PHP读取图像中的文本
发布时间:2020-12-13 13:52:48 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试从此图像中读取文字: 我想读价格,例如“EUR42721.92” 我试过这些图书馆: phpclasses.org/package/2874-PHP-Recognize-text-objects-in-graphical-images.html phpocr.sourceforge.net 但他们不工作我如何阅读文本? 尝试这个(它与我一起工作):
我正在尝试从此图像中读取文字:
我想读价格,例如“EUR42721.92” 我试过这些图书馆: > phpclasses.org/package/2874-PHP-Recognize-text-objects-in-graphical-images.html 但他们不工作我如何阅读文本?
尝试这个(它与我一起工作):
$imagick = new Imagick($filePath); $size = $imagick->getImageGeometry(); $width = $size['width']; $height = $size['height']; unset($size); $textBottomPosition = $height-1; $textRightPosition = $width; $black = new ImagickPixel('#000000'); $gray = new ImagickPixel('#C0C0C0'); $textRight = 0; $textLeft = 0; $textBottom = 0; $textTop = $height; $foundGray = false; for($x= 0; $x < $width; ++$x) { for($y = 0; $y < $height; ++$y) { $pixel = $imagick->getImagePixelColor($x,$y); $color = $pixel->getColor(); // remove alpha component $pixel->setColor('rgb(' . $color['r'] . ',' . $color['g'] . ',' . $color['b'] . ')'); // find the first gray pixel and ignore pixels below the gray if( $pixel->isSimilar($gray,.25) ) { $foundGray = true; break; } // find the text boundaries if( $foundGray && $pixel->isSimilar($black,.25) ) { if( $textLeft === 0 ) { $textLeft = $x; } else { $textRight = $x; } if( $y < $textTop ) { $textTop = $y; } if( $y > $textBottom ) { $textBottom = $y; } } } } $textWidth = $textRight - $textLeft; $textHeight = $textBottom - $textTop; $imagick->cropImage($textWidth+10,$textHeight+10,$textLeft-5,$textTop-5); $imagick->scaleImage($textWidth*10,$textHeight*10,true); $textFilePath = tempnam('/temp','text-ocr-') . '.png'; $imagick->writeImage($textFilePath); $text = str_replace(' ','',shell_exec('gocr ' . escapeshellarg($textFilePath))); unlink($textFilePath); var_dump($text); 您需要安装ImageMagick扩展和GOCR来运行它. 不要忘记设置$filePath值. 该图像显示它查找一个灰色像素来更改$foundGray标志.之后,它会从左侧和从顶部查找第一个和最后一个像素.它用一些填充来裁剪图像,生成的图像被调整大小,并将其保存到临时文件中.之后,很容易使用gocr(或任何其他OCR命令或库).之后可以删除临时文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |