Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用PHP从截图中抓取字幕?_Php_Screenshot_Ocr_Text Recognition - Fatal编程技术网

如何用PHP从截图中抓取字幕?

如何用PHP从截图中抓取字幕?,php,screenshot,ocr,text-recognition,Php,Screenshot,Ocr,Text Recognition,我从电影截图中抓取字幕。 一个例子 它会抓住你 嘿,我们为什么不放松一下呢 它与字幕无关。这是截图。由于它是一个字幕,我们知道字体类型大小等,如果这将使它更容易抓取 我知道你们大多数人都会说PHP OCR库,但由于背景总是不同的,它看起来不起作用。背景不同应该不是问题,您可以使用图像库删除任何不是文本颜色的内容 这里有一个简单的例子,可以很好地理解我的意思,它用\000000替换任何低于\f5f5的颜色 <?php $im = imagecreatefromjpeg("img.jpg")

我从电影截图中抓取字幕。 一个例子

它会抓住你

嘿,我们为什么不放松一下呢

它与字幕无关。这是截图。由于它是一个字幕,我们知道字体类型大小等,如果这将使它更容易抓取


我知道你们大多数人都会说PHP OCR库,但由于背景总是不同的,它看起来不起作用。

背景不同应该不是问题,您可以使用图像库删除任何不是文本颜色的内容

这里有一个简单的例子,可以很好地理解我的意思,它用
\000000
替换任何低于
\f5f5
的颜色

<?php
$im = imagecreatefromjpeg("img.jpg");

for ($x = imagesx($im); $x--;) 
{
    for ($y = imagesy($im); $y--;) 
    {
        $rgb = imagecolorat($im, $x, $y);

        if ((($rgb >> 16) & 0xFF) <= 245 
            && (($rgb >> 8) & 0xFF) <= 245 
            && ($rgb & 0xFF) <= 245) 
        {
            $black = imagecolorallocate($im, 0, 0, 0);
            imagesetpixel($im, $x, $y, $black);
        }
    }
}

header("Content-Type: image/jpeg");
imagejpeg($im);

我真的不明白你的问题是什么。
看来不行。
你试过了吗?我的意思是它可能不会,但至少尝试一下。它可能不起作用的原因是因为几乎没有什么能起作用。当然,没有任何东西具有预先构建的PHP支持。“看起来它不会工作”,但您尝试过它(OCR库)吗?字幕通常位于场景的底部,所以你可以从一开始就修剪很多图片。我的意思是我试过了,但没有成功。该课程自2006年以来从未更新过。除了那门课还有别的选择吗?我找不到。不管背景是否总是不同,只要使用GD(或其他图像库)将任何非白色(字体颜色)的颜色替换为黑色即可。然后背景将始终相同(或接近),您可以使用OCR。谢谢。这对于预处理很有用。之后,我认为我应该研究服务器端解决方案。PHP不足以做到这一点,即使有一些库。