$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \newcommand{\mod}{\,\mathrm{mod}\,} \renewcommand{\div}{\,\mathrm{div}\,} \newcommand{\metar}{\,\mathrm{m}} \newcommand{\cm}{\,\mathrm{cm}} \newcommand{\dm}{\,\mathrm{dm}} \newcommand{\litar}{\,\mathrm{l}} \newcommand{\km}{\,\mathrm{km}} \newcommand{\s}{\,\mathrm{s}} \newcommand{\h}{\,\mathrm{h}} \newcommand{\minut}{\,\mathrm{min}} \newcommand{\kmh}{\,\mathrm{\frac{km}{h}}} \newcommand{\ms}{\,\mathrm{\frac{m}{s}}} \newcommand{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$
Projekti za samostalan i timski rad / Читач бар кодова, QR код читач

Читач бар кодова, QR код читач

  • Dozvoljeno polaganje
  • Timski projekti
  • Nema
  • Vugdelija
  • 1/4/2016

Задатак укључује неколико модула:

        Обрада слике (конверзија у сиво, бинаризација, оријентација, ротација, одсецање)

        Ишчитавање кода из обрађене слике

        Генерисање слике на основу нумеричког кода

        Тестирање и мерење тачности (на прикупљеним и генерисаним сликама)

Пројекти, бинаризације и трансформисања слике, иепд, постају делови овог пројекта у нешто ограниченијем (специјализованом) облику.

Бинаризација слике

Слике је често потребно конвертовати у црно-беле (само две могуће вредности за сваки пиксел, дакле не сиве), ради даље аутоматске анализе. То је на пример случај са сликама које садрже текст, отиске прстију, медицинске снимке и друге.

Поступак квалитетне бинаризације није једноставан као што може да изгледа на први поглед.

Идеја:

        Обезбедити релевантне слике за вежбање

        Ученици пробају сами неки наивни приступ (фиксни threshold), па анализирају где су проблеми.

        Науче и ураде 2-means clustering са глобалним threshold-ом (хистограм, нпр. otsu метод), такође анализирају резултате.

        Посебно занимљив случај се јавља када слика није једнако осветљена на свим својим деловима. Због тога позадина (background) која је генерално светлија од предњег плана (foreground), може у тамном делу слике бити тамнија него предњи план у светлом делу слике (дати пример такве слике). Зато се бинаризација често врши локално, помоћу покретног прозора.  Ако су заинтересовани, могу да пробају локалну бинаризацију са шетајућим прозором.

Трансформације слике 

1. Библиотека

Први део задатка је формирање библиотеке функција за трансформацију слика. При изради водити рачуна да се највећи број трансформација може оптимизовати за брже ирачунавање ако се уместо тачних трансформација користе приближне (једноставан пример је да се уместо рачунања синуса користе вредности из предефинисане табеле).  

Смицање

1

a

0

1

Ротирање за дати угао  

cos alpha 

sin alpha

-sin alpha 

cos alpha

        Брза апроксимација помоћу два смицања

        Интерполација (свака тачка се рачуна из околне 4)

Промена величине слике (resize)

0

b

        Ако је однос величина цео број (посебно ако је степен двојке), употребити оптимизовану верзију. За произвољан однос величина интерполирати

Перспективна трансформација

2. Детекција

Овај део задатка укључује на пример анализу ивица (или неку другу анализу), да би се одредило која трансформација би требало да се примени. 

Пример: Дата је скенирана страница пуна текста, која је при скенирању мало ротирана. Поступак одређивања угла ротације може да укључи израчунавање умањене слике, затим испробавање разних малих углова и рачунање збира по редовима слике, као и неку функцију која евалуира добијени низ збирова (бољи је низ који има већу флуктуацију вредности, а уједначен низ је лошији).

Овај део је опција, за случај да се испостави да им је полазни задатак лак и да су заинтересовани. Свакако би требало да се ограничи на препознавање параметара смицања или ротације (тип трансформације је задат, а потребно је одредити параметар).

Додатак

Ево веома успешне изведбе читача QR koda од стране ученика Математичке гимназије:

- линк ка GitHub пројекту

- презентација пројекта KokrotImg.pdf