4

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

Можно ли программно распознать уникальный штрих-код на каждом изображении и переименовать изображение на его основе?

4 ответа4

2

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

Тем не менее, если вы хотите написать какой-то код, этот пример кода станет серьезным началом.

http://www.codeproject.com/Articles/42852/Reading-Barcodes-from-an-Image-III

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

1

Одна из основных проблем с процессом, о которой идет речь, заключается в том, что программе необходимо идентифицировать штрих-код без подсказок пользователя в произвольном изображении. Если штрих-код большой по отношению к продукту в раме, то у вас, вероятно, будет успех. Доступны библиотеки с открытым исходным кодом и двоичные файлы, которые могут читать, например, TIFF и возвращать строку. (ZBar был одним из IIRC http://www.youtube.com/watch?v=rqzQb_HMYf8 )

Я пробовал это с плоскими элементами площадью около 36 дюймов (и без бюджета), и размер штрих-кода был настолько велик, что вытеснил объект в кадре.

Я использую камеру, которая удаленно приводится в действие сетевым компьютером, и используемое программное обеспечение захватывает изображение непосредственно на файловый сервер и имеет текстовое поле для добавления пользовательского текста в схему автоматического именования. Я точно знаю, что такое программное обеспечение доступно для профессиональных камер Canon и Nikon. (Я не хочу превращать это в рекламу, поэтому я не буду упоминать продукт, но программное обеспечение для конкретных канонов, которое я использую, я купил несколько лет назад за цену порядка 50 $)

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

Дополнительным бонусом является то, что фотограф может просматривать изображение на большом мониторе, прежде чем убрать предмет с экрана.

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

0

О, Боже! На самом деле есть нечто "готовое к использованию", которое даст вам ту функциональность, которую вы ищете »: zbar

#!/bin/bash
for file in $*
do
    name="`zbarimg -q $file`"
    echo "Renaming $file to $name"
    mv $file $name
done

Поместите это в файл. например rename_barcode.sh А также:

chmod u+x rename_barcode.sh
./rename_barcode.sh *.jpg *.png

Конечно, он немного грубоват (что если штрих-код не найден?), Но zbarimg дает вам необходимую функциональность. Оставшаяся часть на самом деле просто сценарии.

РЕДАКТИРОВАТЬ:

Извините, вы не упомянули Linux. Вышеупомянутый скрипт представляет собой скрипт bash, предполагающий, что пакет zbar установлен. Если вы используете Windows, вам просто нужно установить zbarimg.exe где-нибудь и создать аналогичный скрипт, но с использованием синтаксиса MS Batch.

0

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

http://www.amazon.co.uk/My-Link-Barcode-Scanner-Reader-Reading/dp/B000QGSUUK.

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

(другие сканеры доступны).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .