изображение штрихкода к преобразованию Code39 в C#?

Есть несколько причин:

  1. Края не острые и непрерывные (Под острым я имею в виду гладкие, а не с зубами)

  2. Image слишком мал, вам нужно изменить размер

  3. Шрифт отсутствует (не обязательно, но обученный шрифт невероятно улучшает возможность распознавания)

На основе пункты 1) и 2) я смог распознать текст.

1) Я изменил размеры изображения 3x и 2) Я размыл изображение, чтобы сделать края сглаженными

import pytesseract
import cv2
import numpy as np
import urllib
import requests
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract'
from PIL import Image

def url_to_image(url):
    resp = urllib.request.urlopen(url)
    image = np.asarray(bytearray(resp.read()), dtype="uint8")
    image = cv2.imdecode(image, cv2.IMREAD_COLOR)
    return image

url = 'https://i.stack.imgur.com/J2ojU.png'

img = url_to_image(url)



retval, img = cv2.threshold(img,200,255, cv2.THRESH_BINARY)
img = cv2.resize(img,(0,0),fx=3,fy=3)
img = cv2.GaussianBlur(img,(11,11),0)
img = cv2.medianBlur(img,9)
cv2.imshow('asd',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
txt = pytesseract.image_to_string(img)
print('recognition:', txt)
>> recognition: Gm

Примечание:

Этот скрипт хорош для тестирования любого изображения в сети

Примечание 2:

Вся обработка основана на вашем размещенном изображении

Примечание 3:

Распознавание текста не легко. Каждое признание требует специальной обработки. Если вы попытаетесь выполнить эти шаги с другим изображением, оно может вообще не работать. Важно много опознать на изображениях, чтобы вы понимали, чего хочет тессеракт

6
задан Ramesh Soni 15 October 2008 в 08:21
поделиться

3 ответа

См. статью CodeProject: Чтение Штрихкодов из Изображения - II.

Автор (James) улучшает (и кредиты) ранее записанную библиотеку VB для декодирования штрихкодов из изображения с помощью только код.NET.

В загружаемом решении существует два проекта:

  • Библиотека штрихкода - записанный в C#
  • Тестовое приложение - записанный в VB

Я успешно использовал код C# в VS2008 против изображения JPG с расширенным (включает альфа-символы), кодируют 39 штрихкодов.

Библиотека имеет способность отсканировать все изображение для штрихкода, где штрихкод является только частью. Это имеет положительные и отрицательные стороны. Это более гибко, но Вам, вероятно, придется проанализировать шум. Конечно, Вы захотите запуститься с самого чистого возможного изображения. Кроме того, просканированный штрихкод должен быть довольно прямым, не повернутый или скошенным под углом.

Если можно ограничить сканирование "частью" фактического штрихкода, Вы могли бы получить лучшую точность.

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

Существуют, конечно, некоторые очень впечатляющие (и некоторые очень дорогие), коммерческие решения, которые имеют преимущество того, чтобы быть хорошо протестированным, более гибкий, могут просканировать больше форматов штрихкода и более терпимы к качеству изображения из-за улучшенной выборки изображения. Но это - хороший (свободный) запуск!

Необходимо будет подписаться с CodeProject для загрузки кода, но это свободно также - и стоит времени, потому что существует так много хорошего кода того сайта!

ОБНОВЛЕНИЕ: Кстати, я просто посмотрел на блог, который Joachim Kerschbaumer упоминает в другом ответе на Ваш вопрос. Определенно следите за тем проектом! Это похоже на очень надежное решение. Если это может считать те скошенные штрихкоды из тех занятых изображений, то это может сделать что-либо!

4
ответ дан 9 December 2019 в 20:51
поделиться

Я использую softek инструментарий штрихкода - http://www.bardecode.com/

Работы очень хорошо - 249$ для единственного разработчика.

1
ответ дан 9 December 2019 в 20:51
поделиться

мы разработали c# компонент, который читает значения из штрихкодов всего размера, вращения, качество и т.д., это еще не выпуск, но мы выпустим подробную информацию об этом по http://blog.lemqi.com. это будет, вероятно, свободно (возможно, открытый исходный код). но возможно это - все еще 1-2 недели до выпуска, поскольку мы должны осуществить рефакторинг код прежде.

7
ответ дан 9 December 2019 в 20:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: