Я работаю над обнаружением 2D штрих-кода на печатной плате. Среда Visual Studio 2012.
Мы столкнулись с некоторыми проблемами и не можем успешно отфильтровать 2D-изображение штрих-кода.
Загрузка рисунка: Исходное изображение Размер 1600 * 1200.
После того как мы загрузим рисунок и начнем серию обработки, выполните следующие шаги:
1. Нахождение порогового значения методом автопорога.
2. Делаем бинарный порог к изображению.
3. Делаем открытие, чтобы сделать изображение чётким.
Открытие:
dst = открыть (источник, элемент) = расширить (разрушить (источник, элемент))
4. Отфильтруйте прямоугольник, кроме квадратов.
Тогда мы можем получить коллекцию квадратов.
Как показано на следующем рисунке, после шагов 1-4 мы можем найти квадраты на изображении.
5. Используя аналогичный шаблон матрицы данных, сравните с квадратами соответственно с помощью анализа гистограммы.
5.1 Рассчитать гистограмму
void calcHist (const Mat * изображения, изображения,
каналы const int *, маска InputArray,
OutputArray hist, int dims, const int * histSize,
const float ** диапазоны, bool равно = true, bool накапливается = false);
5.2 Нормализовать диапазон значений массива
нормализация пустоты (InputArray src, OutputArray dst, двойная альфа = 1, двойная бета = 0,
int norm_type = NORM_L2, int dtype = -1, InputArray mask = noArray ());
5.3 Сравнить две гистограммы с корреляцией.
double compareHist (InputArray H1, InputArray H2, CV_COMP_CORREL);
6. После обработки мы не можем отфильтровать правильное изображение из квадратной коллекции.
6.1 Мы скорректировали интервалы гистограммы с 256 до 64/32, но результаты без робастности, значения корреляции очень низкие, даже меньше 0,5.
6.2. Мы также пытаемся использовать EMD (расстояние от Earth Mover), чтобы оценить сходство двух квадратов, и это не решает эту проблему.
[[Вопрос]]:
Можно ли поделиться с нами некоторыми предложениями по улучшению нашего метода обнаружения?
Почему бы не использовать библиотеки?
В противном случае вы можете изучить код в этих библиотеках и попытаться оптимизировать свой собственный код.