Почему загрузка FromFile и нового растрового изображения отличается? Это нарушает мой код :( - PullRequest
0 голосов
/ 10 ноября 2009

Я использую tessnet2 , чтобы извлечь предложение в этом файле img. Когда я вызываю функцию tessnet2, используя bmp, она терпит неудачу (она возвращает «~» в качестве моего предложения), а когда я использую bmp2, она работает. WTF, почему?

Причина, по которой я делаю 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);

Ответы [ 2 ]

1 голос
/ 11 ноября 2009

Вместо вызова FromFile попробуйте использовать FromStream. Вы можете попробовать что-то вроде этого:

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

Класс Image любит блокировать файлы, и это может быть причиной плохого чтения из tessnet2.

0 голосов
/ 10 ноября 2009

Я бы рекомендовал сохранять каждое из изображений на диск после каждого из 3 шагов. Таким образом, вы получите 3 файла (img, bmp & bmp2).

Затем используйте что-то вроде Paint.NET , чтобы вычесть одно изображение из другого:

  • img - bmp
  • BMP - BMP2
  • bmp2 - img

Если какой-либо из результатов не является полностью пустым изображением, то изображения в 3 шагах отличаются.

Если они одинаковые, тогда я могу только думать, что что-то не так с библиотекой tessnet2, поскольку она вызывает разные результаты, когда вы вызываете, если на идентичных изображениях !! Может ли это быть на самом краю приемлемого чтения, есть ли какие-либо настройки, которые вы можете установить в библиотеке, чтобы сделать ее более терпимой?

...