Skip to main content

Image 1D Barcode EXtractor - Detect and Extract 1D Barcode(s) in Photographs

Project description

IBEX 1D : Image 1D Barcode EXtractor

Detect 1D Barcode(s) in Photographs, Extract & Straighten them!

A Python 3 command line script to detect & extract barcode(s) in images, using OpenCV and NumPy.

Example of barcode extraction

Install

Via PIP

pip3 install ibex-1d

And for update to latest version use:

pip3 install --upgrade ibex-1d

Via Source Code

Download the latest release or clone/download this repository.

Usage

If you installed the package (via pip3) you can either import the package in your project:

import ibex_1d

image_path = "/Users/bensouchet/Desktop/IMG_3212.png"
settings = ibex_1d.Settings()
settings.use_adaptive_threshold = True

barcode_extract = ibex_1d.ImageBarcodeExtract1D(settings)
results = barcode_extract.find_barcodes([image_path])

Or use it as a script directly in you terminal:

ibex_1d -i ~/Desktop/IMG_3212.png

If you download a release or clone the repository, to use it as a script:

python3 ibex_1d.py -i ~/Desktop/IMG_3212.png

Results

If you called IBEX 1D via your terminal (as a script), the barcode images extracted will be saved into a newly created folder inside a folder ./results/, if nothing has been generated please check the log(s) in your terminal.

Otherwise if you called the function find_barcodes you will received a python list of ibex_1d.Result instances, this class store info about the execution (like execution status, message, debug steps) and the barcode(s) image(s) extracted for each image path passed to the function.

Multiple images

You can pass one or more images/photographs to the script like this:

ibex_1d -i ~/Desktop/IMG_3205.png ./object_12.jpg ~/Documents/photo_0345.jpeg

Inside the corresponding result sub-folder, extracted barcodes will be named barcode_001.png, barcode_002.png, barcode_003.png, ...

Incorrect result ?

If the barcode hasn't been extracted (or the resulting barcode image isn't good) this can be due to the OTSU threshold method. You can try using the script with the argument -a (or --adaptive-threshold):

ibex_1d -i ~/Desktop/IMG_3205.png -a

This threshold method isn't set as default because it's slower than OTSU.

Debug

You can visualize some steps of the sheet detection. For the script call you need to add the argument -d or --debug to the command:

ibex_1d -i ~/Documents/product_03.jpeg -d

if you imported the package, you need to enable the save_detection_steps in the settings instance like this:

settings = Settings()
settings.save_detection_steps = True

barcode_extract = ImageBarcodeExtract1D(settings)
results = barcode_extract.find_barcodes(images_paths)

This will add debug/steps images into the result sub-folders.

Errors / Warnings

In case of an error you should see a formatted log message in your terminal telling you exactly what is the issue. If the script crash or something don't work you can open an issue here.

Author / Maintainer

IBEX 1D has been created and is currently maintained by Ben Souchet.

Licenses

The code present in this repository is under MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ibex_1d-1.3.2.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

ibex_1d-1.3.2-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file ibex_1d-1.3.2.tar.gz.

File metadata

  • Download URL: ibex_1d-1.3.2.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for ibex_1d-1.3.2.tar.gz
Algorithm Hash digest
SHA256 e093f1b56a120e1db285be1dacf2dee4eea74ae997928410204f425a7e4046b9
MD5 9871c9014cf6369e138c88be2d856a55
BLAKE2b-256 b15a5201e0acd2a356f1856361c76e20573c88e02ba438ea006196b7c30f0ea3

See more details on using hashes here.

File details

Details for the file ibex_1d-1.3.2-py3-none-any.whl.

File metadata

  • Download URL: ibex_1d-1.3.2-py3-none-any.whl
  • Upload date:
  • Size: 14.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for ibex_1d-1.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 892c437b4609db709bc83760f331177efaab732a9412090d2ff16c74a407ce41
MD5 7c139a280e688c0fbdd593cc8e0416a5
BLAKE2b-256 9651186c848a9dd6276c181c82f2dad09f22d7d69a2758d9eb8649dbc8ed2ebe

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page