> это даже проще чем тебе кажется, т.к. если важна только > ширина линий, не нужно делать обработку по вертикальной > оси. Просто выбери одну строчку из середины картинки и > обработай её. если один пиксель черный, следущий за ним - > белый , значит нолик > если два черных пикселя подряд, значит единичка
А почему вы считаете, что не может быть так, что два пикселя в ширину -- это узкая полоса, а четыре -- широкая?
В общем, нужно обработать следующим образом bmp-файл (представляющий из себя на самом деле штрих-код в кодировке Interleaved 2 of 5): подгрузить его в память и представить широке белые и широкие черные полосы как еденички, а узкие черные и узкие белые как нолики, загнав полученную комбинацию в массив. Понимаю, что надо грузить изображение в память, выбрать точку где-нибудь по Y и двигаться по X, определяя, что есть длинная черная/длинная белая и узкая черная/узкая белая, но как реализовать это даже не представляю. Посоветуйте что-нибудь, пожалуйста.
это даже проще чем тебе кажется, т.к. если важна только...10.03.06 23:23 Автор: Kirka Статус: Незарегистрированный пользователь
> В общем, нужно обработать следующим образом bmp-файл > (представляющий из себя на самом деле штрих-код в кодировке > Interleaved 2 of 5): подгрузить его в память и представить > широке белые и широкие черные полосы как еденички, а узкие > черные и узкие белые как нолики, загнав полученную > комбинацию в массив. Понимаю, что надо грузить изображение > в память, выбрать точку где-нибудь по Y и двигаться по X, > определяя, что есть длинная черная/длинная белая и узкая > черная/узкая белая, но как реализовать это даже не > представляю. Посоветуйте что-нибудь, пожалуйста.
это даже проще чем тебе кажется, т.к. если важна только ширина линий, не нужно делать обработку по вертикальной оси. Просто выбери одну строчку из середины картинки и обработай её. если один пиксель черный, следущий за ним - белый , значит нолик
если два черных пикселя подряд, значит единичка
а имеено в програмном плане, просто поищи в яндексе "Visual C работа с изображениями", или на codenet.ru либо на ishodniki.ru найди рабочие примеры работы с графикой в Visual C.
А почему вы считаете, что не может быть так, что два пикселя...11.03.06 11:16 Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
> это даже проще чем тебе кажется, т.к. если важна только > ширина линий, не нужно делать обработку по вертикальной > оси. Просто выбери одну строчку из середины картинки и > обработай её. если один пиксель черный, следущий за ним - > белый , значит нолик > если два черных пикселя подряд, значит единичка
А почему вы считаете, что не может быть так, что два пикселя в ширину -- это узкая полоса, а четыре -- широкая?
Быть может всё.11.03.06 15:24 Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 11.03.06 15:25 Количество правок: 1
Распознавание штрих-кода с картинки близко к проблеме распознавания текстов, ибо картинка может быть повёрнутой под углом, содержать всяческие артефакты и т.п. Почему именно растровый скан? Может стоит прикрутить к вашему АРМ старый добрый сканер штрих-кодов, стОят они недорого, заточены имеено под это дело, и сравляются с этой задачей очень хорошо.
Да я бы с радостью, но...11.03.06 23:53 Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
> Распознавание штрих-кода с картинки близко к проблеме > распознавания текстов, ибо картинка может быть повёрнутой > под углом, содержать всяческие артефакты и т.п. Почему > именно растровый скан? Может стоит прикрутить к вашему АРМ > старый добрый сканер штрих-кодов, стОят они недорого, > заточены имеено под это дело, и сравляются с этой задачей > очень хорошо.
Да я бы с радостью, но задача поставлена именно такая, как я описал выше. Расскажите хотя бы пожалуйста как вообще считать из диалогового окна изображение в память и определять цвета, дальше уже буду думать.