Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Реализовать распознавание штрих-кода на изображении и их расшифровку - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Решето Эратосфена http://www.cyberforum.ru/cpp-beginners/thread747017.html
Возможно ли найти простые числа методом решета Эратосфена с помощью вектора за один проход? Добавлено через 1 минуту У меня получается только такое: int number; for(vector<int>::iterator it...
C++ найти слова,в которых нет букв,что повторяються В строке слов из букв латинского алфавита найти слова, в которых нет букв, которые повторяются. http://www.cyberforum.ru/cpp-beginners/thread747015.html
Странный код C++
Почему такой код верен time_t start, end; start = time(NULL); if (start == (time_t) - 1) { cout << "Time is unavailable" << endl; exit(EXIT_FAILURE); }
C++ Программа дла мониторинга температуры CPU
Здравствуйте, уважаемые программисты! "Хочу посмотреть, умеешь ли ты докапываться до истины", - сказал работодатель и задал мне такую задачку. Я еще зеленая, умею только уравнения разностными...
C++ ООП - классы. Составьте программу, демонстрирующую работу с каждым из подготовленных классов http://www.cyberforum.ru/cpp-beginners/thread746989.html
Необходимо разработать заголовчный файл, содержащий описание иерархии из двух классов, включающих функии для ввода-вывода парамтером объектов и некторую заданную функцию. Определение...
C++ В строке слов из букв латинского алфавита найти слова, в которых нет букв, которые повторяются. В строке слов из букв латинского алфавита найти слова, в которых нет букв, которые повторяются. подробнее

Показать сообщение отдельно
Rayvol
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 46
10.01.2013, 23:54  [ТС]
Нужна небольшая помощь в данной работе.
Что есть:
У нас есть рисунок, содержащий штрих-код (во вложении)
Что нужно:
Вывести закономерность белого и черного цвета (по верхней линии штрих кода) где белый это 0, а черный 1 (по одному символу на пиксель) и создать некую матрицу вида 111-000-11-00 итд. Затем из полученной закономерности надо расшифровать штрих код (в моем случае должно получиться 123456)(расшифровка) и вывести в итоге (в консоли) значения, зашифрованные в этом штрих коде.
С созданием матрицы я уже вроде бы разобрался, а вот с расшифровкой - проблема. Не понимаю, как сделать алгоритм. Очень нужна помощь в этом.
Для упрощения штрих-код обрезал в редакторе изображений, чтобы первый пиксель был черный.
Код для проверки пикселей:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <QtCore/QCoreApplication>
#include <string.h>
#include <QtGui/QColor>
#include <QtGui/QImage>
#include <QtGui/QPixmap>
#include <QtGui/QPicture>
#include <QtGui/QPainter>
#include <QPoint>
#include <QPointF>
#include <QtGui/QWidget>
#include <QtGui/QtGui>
#include <QTextStream>
 
QTextStream qout(stdout);
QTextStream qin(stdin);
 
int main(int argc, char **argv)
{
    int s = 0;
    int n;
    QImage img1("test1.png");
    n = img1.width();
    int mas[n];
    for (int i = 0; i<n; i++)
    {
        mas[i] = 1;
    }
    bool a = true;
    QColor pix1;
    QColor pix2;
    pix1.setRgb(img1.pixel(1,1));
    for (int i = 1; i<n; i++)
    {
        pix2.setRgb(img1.pixel(i,1));
        if (pix1 != pix2)
        {
            mas[i] = 0;
        }
    }
 
    for (int i = 0; i<n; i++)
    {
        qout<<mas[i]<<" ";
    }
    return 0;
}
И функция

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
for (int i = 1; i<n; i++)
    {
        pix1.setRgb(img1.pixel(i,0)); //считываю пиксель
        pix2.setRgb(img1.pixel(i-1,0)); // тоже самое с предыдущим
        if (pix1 == pix2)
        {
            mas[i-1] = 1;
        }
        else
        {
            mas[i-1] = 1;
            a = false;
        }
        if (a = false)
        {
            for (int j = i; j<n; j++)
            {
 
                pix1.setRgb(img1.pixel(j,0));
                pix2.setRgb(img1.pixel(j-1,0));
                if (pix1 == pix2)
                {
                    mas[j-1] = 0;
                }
                else
                {
                    mas[j-1] = 0;
                    a = true;
                    i=j;
                    break;
                }
            }
        }
    }
#FFFFFF
#FFFFFE
0
Миниатюры
Реализовать распознавание штрих-кода на изображении и их расшифровку  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru