0

我正在使用tessnet2来提取这个 img 文件中的句子。当我使用 bmp 调用 tessnet2 func 时,它会失败(它返回“~”作为我的句子),而当我使用 bmp2 时,它会起作用。见鬼,为什么?

我这样做的原因是 FromFile 是因为我从服务器获取图像并使用 Image.FromStream 直接加载而不是保存到文件。为什么这两个不同,我该怎么做才能让 tessnet2 函数像 bmp2 一样工作?

            img = System.Drawing.Image.FromFile(imgUrl);
            var bmp = new System.Drawing.Bitmap(img);
            var bmp2 = new System.Drawing.Bitmap(imgUrl);
4

2 回答 2

1

尝试使用 FromStream,而不是调用 FromFile。你可以尝试这样的事情:

MemoryStream ms = new MemoryStream(File.ReadAllBytes(imgURL));
img = Image.FromStream(ms);

Image 类喜欢锁定文件,这可能是导致 tessnet2 读取错误的原因。

于 2009-11-10T21:16:15.433 回答
0

我建议在 3 个步骤之后将每个图像保存到磁盘。所以你最终会得到 3 个文件(img、bmp 和 bmp2)。

然后使用Paint.NET 之类的东西从另一个图像中减去 1 个图像:

  • 图像 - bmp
  • bmp-bmp2
  • bmp2 - 图像

如果任何结果不是完全空白的图像,则 3 步中的图像是不同的。

我认为它们是相同的,然后我只能认为 tessnet2 库有问题,因为当您在相同的图像上调用时,它会产生不同的结果!它是否处于可接受读取的边缘,您可以在库中设置任何设置以使其更宽容吗?

于 2009-11-09T22:56:19.797 回答