Skip to content

Dashibug/Custom_barcode_detection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Custom 1D Barcode Detection (Hough Transform)

Курсовой проект по курсу Computer Vision: инженерный метод детектирования штрих кодов c использованием преобразования Хафа.

Репозиторий содержит:

  • prj.cw/misis2024s — основной проект, детекция штрих кодов
  • prj.lab — лабораторные задания
image

Данные

Используется набор изображений, снятых в разных условиях и под различными углами.
Для каждого изображения подготовлена карта бинарной сегментации (ground truth), которая помогает локализовать область поиска.

Алгоритм решения

1. Предобработка и карта границ

  • BGR → Grayscale
  • медианная фильтрация (снижение шума)
  • автоматический подбор порогов Canny на основе медианы интенсивностей и коэффициента sigma
  • Canny → карта границ

Дополнительно формируется визуализация “оригинал + карта границ”.

2. Детектирование линий преобразованием Хафа

На маскированной карте применяется cv::HoughLinesP. Параметры:

  • rho = 1 (пиксели)
  • theta = 1°
  • threshold = 50
  • minLineLength = 50
  • maxLineGap = 10

Все найденные линии рисуются на исходных изображениях.

3. Прямоугольник штрих-кода

Если линии найдены, собираются все концы линий и строится минимальный прямоугольник.

barcode_rect = cv::boundingRect(points);
cv::rectangle(img, barcode_rect, cv::Scalar(0,255,0), 2);

4. Сравнение с “идеальным” прямоугольником

Из parsed_data.json загружается разметка и на изображении наносится “идеальный” прямоугольник (белым). Это позволяет визуально сравнить результат детектора с разметкой.

image

Build

Реализовано два удобных способа сборки проекта: через IDE (Visual Studio / CLion) или через командную строку.

Requirements

  • CMake 3.15+
  • C++ compiler with C++17 support
  • OpenCV (dev package)

Build (macOS / Linux)

git clone https://github.com/Dashibug/Custom_barcode_detection.git
cd Custom_barcode_detection

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j

Build (Windows)

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release

После сборки бинарники будут в одной из папок:

  • build/Release/
  • или build/<target_name>.exe (зависит от генератора)
image

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

2 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors