point processing & geometric processing

24
ТУ – СОФИЯ, ТУ – СОФИЯ, Филиал Пловдив Филиал Пловдив КУРСОВ ПРОЕКТ КУРСОВ ПРОЕКТ по по МУССОИ МУССОИ Изготвил: Изготвил: фак. фак.N , гр.: , гр.: Светлана Райкова 342 867, 32а

Upload: posnai

Post on 12-Nov-2014

487 views

Category:

Documents


2 download

DESCRIPTION

My course assigment

TRANSCRIPT

Page 1: Point Processing & Geometric processing

ТУ – СОФИЯ,ТУ – СОФИЯ,

Филиал ПловдивФилиал Пловдив

К У Р С О В П Р О Е К ТК У Р С О В П Р О Е К Т

попо

М У С С О ИМ У С С О И

Изготвил:Изготвил: фак.фак.NN, гр.:, гр.:

Светлана Райкова 342 867, 32а

Пловдив Проверил:....................Проверил:....................

Дата: гл.ас.др. Б. Петров

Page 2: Point Processing & Geometric processing

ТУ – СОФИЯ,ТУ – СОФИЯ,

Филиал ПловдивФилиал Пловдив

З А Д А Н И Е :З А Д А Н И Е :

Методи за обработка на изображения.

2

Page 3: Point Processing & Geometric processing

Т Е О Р И Т И Ч Н А Ч А С ТТ Е О Р И Т И Ч Н А Ч А С Т

I.I. Процеси Точка-по-ТочкаПроцеси Точка-по-Точка

1. Аретметични операции.

a. Събиране - Когато прибавяме към пиксел го прибавяме към яркоста на изображението. Макар и да просветлява изображението това не помага на контраста.

b. Изваждане – Вадейки от пикселната стойност ние потъмняваме изображението.

c. Умножение и Делене – умножавайки и деляйки пикселите с различни стойности се настройва контраста на изображението. Умножението увеличава контраста и респективно деленето го намалява.

Математическите операции предизвикват проблеми като създават отрицателни стойности или стойности по-големи от максималните възможни. Това може да се предотврати като пикселните операции, които са негативни се обръщат в нули, а операциите които генерират стойности по-големи от 255 се ограничават до 255.

2. XOR oперации.Сравнява два пиксела и когато пикселите са с различна стойност

резулататът от операцията ще е 1, ако пикселите са с еднаква стойност резулататът е 0.

Операциите за неравнозначност могат да се използват за намиране на пиксели с точно определена стойност като зададем търсената стойност и когато функцията се нулира сме намерели еднаквата й. Всеки пиксел, който е със зададената стойност ще стане черен, а всички останали ще

останат непроменени.

3

XOR0 0 00 1 11 0 11 1 0

Page 4: Point Processing & Geometric processing

3. Таблици на съответствието. Алгоритмите на точка-по-точка са най-ефективни приложени с

таблици на съответствието. Те представляват масиви, които използват текущите стойности на пикселите като масивни индекси. Новата стойност на пиксела ще представлява друга масивна стойност посочена от индекса в таблицата на съответствие. Новото изображение се построява като тази процедура се повтаря за всеки пиксел. Пример за това е входно изображение 5х5 представено на /Фиг.1/, където броят на битовете ще сочи индекс от ТС /таблицата на

съответствие/.

Предимство на таблиците за съответствие е, че има обратни връзки, които проверяват връщаната стойност от операцията. Всяка стойност по-голяма от 255 ще бъде ограничавана до 255 и

всяка стойност по-малка от 0 ще бъде ограничавана до 0. Входния буфер за масива от пиксели може да се използвам като изходен за да се спести памет, защото всеки пиксел от входния буфер се използва като индекс за ТС и тогава се замества във буферас пиксел връщан от ТС.

4. Хистограми.Хистограмата на изображение е полезен инструмрент, с който е

възможно да видим яркостния профил на изображение. Тя дава информация както за яркостното рапределени така и за контраста в едно изображение. Хистограмата представлява честота, с която се среща дадена пикселна яркост, като по абцисата представяме яркоста, а по ординатата честотата на срещане /Фиг.2/.

5. Изравняване на Хистограми.

4

Page 5: Point Processing & Geometric processing

Изравняването на хистограми се прилага на изображения със слабо разпределение на яркост. Целта е да се постигне постоянна хистограма.

Методът няма да направи хистограмата плоска/равна, а ще преразпредели яркоста. Ако една хистограма има много пикове и падове след изравняването пак ще ги има но ще са изместени, т.е. не се получава уплатняване а разпростиране на хистограмата.

Тъй като изравняването на хистограма е точков процес няма да се въведе нова яркост в изображението, а съществуващи стойности на яркоста ще бъдат организирани в нови като няма да са повече на брой от старите яркостни стойности, но могат да са по-малко.

Изравняването на хистограмите може да се направи в три стъпки:a. Изчисляване на хистограмата.b. Пресмятане на нормализираната сума на хистограмата.c. Преобразуване на входното изображение в изходно.

a. Първата стъпка се извършва като се изброят стойностите на всички пиксели в изображението. Може да се започне с масив от нули. За 8 битови размерът на областта ще е 256 /от 0 до 255;2n/.

b. Нужен е втори масив за съхраняване на сумата на всички стойности на хистограмата. В този масив елемент 1 ще съдържа сумата от хистограмните елементи 1 и 0, а елемент 255 ще съдържа сумата на 255+254+253+.....+1+0. Този масив се нормализира като се умножава всеки елемент по:

максималнастойнос напикселабройпиксели

.

c. Резулатата на втората стъпка извиква Таблица на съответствието, с която е възможно трансформацията на входното изображение в изходно.

Методът работи най-добре на изображения с финни детайли в затъмнени области.

6. Спецификации на хистограмите.Изравняването на хистограмите апроксимира равномерна

хистограма, но понякога ни е нужно изображение с повече контраст. Това е възможно в две стъпки:

a. Изравняване на оригиналното изображение.b. Обратно израваняване на хистограмата - Обратното

изравняване на хистограмата се изпълнява като генерираме Таблица на съответствието отговарящ на желаната от нас

5

Page 6: Point Processing & Geometric processing

хистограма и след това изчислим обратната трансформация от Таблицата на съответствие. Обратната трансформация се изчислява като се анализира изхода на Таблицата на истинност.

7. Разтягане на контраста.Контраста в изображението е разпределението на светли и тъмни

пиксели.

В една хисотграма с нисък контраст пикселите са съсредоточени в лявата, дясната или в средата от дясно /Фиг.3/.

Проблема при високия контраст е че има две големи области – тъмна и светла, т.е. има два големи пика – висок и нисък.

При един добър контраст се наблюдава голям обсег от стойности на пикселите, няма сенки на изображението, няма да има пикове или падове в хистограмата и рапределението на пикселната яркост ще е по-еднородно.

Разтягането на контраста се прилага за да се запълни целя динамичен обхват на изображението. Полезно е при увеличаване на изображения с нисък контраст и има най-голям при успех при такива с Гаусово или почти Гаусово рапределение.

Два най-прилагани метода са:a. Основно контрастно разпъване.b. При засичане на краища.

6

Page 7: Point Processing & Geometric processing

a. Методът е добър при изображения с концентрация на пикселите в една част от хистограмата. Ако е центрирана то методът ще проработи като разшири хистограмата докато покрие всички обхвати на пикселите, като най-високата и най-ниската стойност се ползва за трансформацията:

нов пиксел= старапиксел−новпикселнай−високастойност−най−нискастойност

×255

b. Този метод работи най-добре за изображения с пиксели от всички възможни яркости, имайки пикселна концентрация в една част от хистограмата. Една част от пикселите ще трябва да бъдат превърнати в черни или бели, след това алгоритъма ще премине нагоре през цялата хистограма за да намери най- ниския праг. Най-ниския праг е стойност на хистограмата, където по-нисък процент е достигнат. Минавайки надолу от върха можем да намерим и най-високия праг и Таблицата на съответствие се инициализира:

изход ( x )={ 0 за х≤нисък праг

255×х−нисък праг

висок праг−нисък прагза х ϵ (нисък праг; високпраг )

255 за х ≥ висок праг

8. Трансформация на яркоста.

Трансформацията представлява преобразуването на стар пиксел в нов чрез някаква предварително зададена функция. Лесно можеда се изпълни с Таблици на съответствието и входно изходните връзките

на таблиците може да се представи графично. По x се представят оригиналните пиксели, а по y новите пиксели.

a. Когато стойсноста на стария пиксел е равна на стойнсота на новия пиксел трансформацията се нарича нулева.

b. Друга проста трансформация е негатива, където яркосните стойности се инвертират /Фиг.4/.

c. Трансформация при разпъване на контраста – намаляването на контраста ще

потъмни екстремалните светли участъци и обратното, като тази

7

Page 8: Point Processing & Geometric processing

трансформация разпределя яркоста за високо контрастни изображения /Фиг.5/.

d. Трансформация на яркоста – Праговата трансформация намалява нивата на сиво в изображенията. Прага пада с две сиви нива, а свързания праг намалява прага до минимален обхват и третира

другите входни пиксели с Нулева трансформация /Фиг.6/.

e. Битовата ограничителна трансформация поставя в 0 определен брой от старшите битове на пикселите. Това има ефекта на разделяне на изображението на обхвати от черно към бяло на няколко подобхвата със същите яркостни цикли. Яркостния обхват ще се разделя от 0 до 255 на 4,

т.е. 0 до 63/Фиг.7/. f.Контурно-яркостната трансформация поставя входната

яркостна стойснот в черно или бяло на изхода. Може да се използва за създава на изображения на конкретни интервали на яркостта. Тук голяма част от входното изображение е напроменено докато останалата част се изменя с определена яркост /Фиг.8/.

g.Също така яркостна трансформация може да се направи като променяме и яркостта на един пиксел и оставяме постоянна яркостта на другите. Това се нарича Обхватна трансформация /Фиг.9/.

h. Сланчева трансформация /Фиг.10/:

изход ( х )={ х за х ≤праг255−х за х>праг

i. Параболоична трансформация /Фиг.11/:

8

Page 9: Point Processing & Geometric processing

изход ( х )=255−255( х128

−1)2

и изход ( х )=255( х128

−1)2

9

Page 10: Point Processing & Geometric processing

II.II. Геометрични Процеси.Геометрични Процеси.

Геометричните преобразувания служат за промяна в подредбата на пикселите базирана на геометрични преобразувания /Фиг.12/. Основната идея е да се преместват пиксели вътре в изображението като в идеалния случей стойностите на пикселите не се променя. Ако

обаче геометричната обработка се прицели в пиксел, който не съществува ще се създаде нов пиксел. Тази пикселна генерация е известна като

Интерполация /вмъкване/. Самата интерполация не е част от геометричната обработка, но се използва от много геометрични трансформации.

1. Право срещу Обратно организиране.

Когато се програмират геометрични процеси винаги трябва да се ипозлават координатите на изображението за да могат да се генерират изходни координати за новото изображение. Това се нарича Обратно организиране. А прехвърлянето на входни пиксели чрез x и y организационни функции се нарича Право организиране.

Има два основни проблема при правото организиране и това са дупките и прескачания /Фиг.13/. Дупките се пиксели, които са недефинирани и пикселите за направление нямат отговарящите пикселни източници. Прескачанията се проявяват, когато два пиксла са организирани в един изходен пиксел.

Вижда се как правото преобразуване може да остави дупка в изходното изображение. Съшо така показва два начални пиксела подредени в един изходен .

В обратното преобразуване всички пиксели от подреденото изображение имат отговарящ входен пиксел. Но не е проблем,

10

Page 11: Point Processing & Geometric processing

че два подредени вече пиксела се поставят в един и същ начален пиксел.

Обратната организация преминава през направялващото изображение и изчислява чрез някои обратни трансформации, кои пиксели от началното изображение ще бъдат използвани за да се генерират направляващите пиксели. Изчисляването на изходното изображение по този начин елиминира появата на дупки и прескачания.

2. Интерполации.

Организационната функция понякога създава дробни адреси, които трябва да се пресметнат. Трансформацията, която ще определи началния адрес е:

хизточник=хнаправляващо

2и уизточник=

унаправляващо

2Пикселът за напревление [0],[0] ще дойде от източник [0],[0], но

пиксела от направление [1],[1]? Обратната трансформация ще търси за източник [0.5],[0.5], а такъв пиксел не съществува в началното изображение. Методът наречен интерполация решава този проблем.

Интерполацията е операция генерираща стойности за адреси лежачи между пиксели. Интерполацията генерира нови пиксели като анализира съседните пиксели. И направлението [1],[1] ще дойде от функцията на източника [0],[0] и обкръжаващите го пиксели.

3. Най-близка съседна Интерполация.

Основната идея на най-близката интерполация на съседен пиксел е да се адресира пиксела възможно най-близо до новогенерирания адрес, като изходен пиксел. С този похват дробният адрес пресмятан за източниковия пикселе закръглен до най-близкия валиден адрес. Тъй като не се пресмятат нови стойности изходния пиксел ще с е получи от входния. Този метод обаче не може да се използва когато ни интересуват подпикселните стойности. По принцип колкото по-голям е броят на изходните пиксели свързани в един изходен пиксел, толкова по-лошо ще е изходното изображение.

4. Билинийна Интерполация.

11

Page 12: Point Processing & Geometric processing

Новогенерирания пиксел представлява тегловна сума от четирите най-близки пиксела. Теглата се определят линейно. Всяко тегло е пропорционално на разтоянието на всеки съществуващ пиксел.

Билинейната интерполация изисква три линейни интерполации /Фиг.14/. Отговарящите дробни адреси са представени като х и у. Тези стойности ще бъдат представени като тегла: ИЗ тегла /EW/, СЮ тегла /NS/ в код. Четерите най-близки пиксела са: северозапад, североизток, югозапад, югоизток. Билинейната интерполация се прилага за изглаждане на изображения но изисква повече изчисления от предходния метод.

5. Интерполация от висок ред.

Интерполацията на най-близкия съседен пиксел изисква един

изходен пиксел. Билинейната изисква четири съседни пиксела. Функцията на интерполация от висок ред обфваща по-големи области за генериране на изходни пиксели.

12

Page 13: Point Processing & Geometric processing

Всички интерполационни функции работят на един и същи принцип. Функцияра се центрира в точка, която представлява интерес

за нас и стойноста от пробната точка се умножава по пробите. Сумата от всички произведения представлява новогенерирани пиксел /Фиг.15/. Едномерната интерполация лесно може да се разшири до двумерна /Фиг.16/ като почнем от редовете първо. Резултатът от всеки пресмятан ред ще генерира една стойност, след това се извиква с тях крайния пиксел.

6. Кубична Конволюционна Интерполация.

Едномерната кубична функция /Фиг.17/ се дефинира като:

f ( x )={ (a+2 )|x|3−(a+3 )|x|2+1 за|х|ϵ ¿a|x|3−5a|x|2+8a|x|−4a за|х|ϵ ¿

0 за|х|≥2

13

Page 14: Point Processing & Geometric processing

Тази функция има отрицателни стойности, които повдигат два важни въпроса: първо, че тази функция ще произвежда много обострен

релеф, от която и да е друга интерполация; второ: възможно е да извежда резултат с отрицателна стойност, ще се наложи изходът от функцията да бъде подтисната за да няма пиксели с отрицателни стойности. Фукцията също така има и големи положителни стойности по-големи от максималните възможни. Изходът също ще трябва да е подтиснат за да се осигури горния праг на пикслените стойности.

За кодирането може да се използва Хорпъровото правило за да се спестят изчисления:

х2+ х=( х+1 ) х их3+2 х2+3 х+4=(( ( х+2 ) х+3 )х+4 )Красотата на това опростяване е че сега ще пресмятаме полином

от втори ред с 3 събирания и 2 умножения докато лявата страна на полинома изисква 3 събирания и 5 умножения.

Втора оптимизация на кода би могла да се направи с премахване на ненужните интерполации. Първо ако стойностите на х и у са [0,0], началният адрес е цяло число и няма нужда да се създава пиксели с интерполация, т.е. връщаме пиксела накъдето сочи началния адрес. С друг оператор търсим х и у равни на [0,0], ако намерим такива ще трябва да се приложи едномерна интерполация.

По-добра оптимизация би се получила ако създадем таблица, която да съхранява стойностите на коефициентите, така че да бъдат сметнати само веднъж. Двумерна област би могла да съхранява стойностите на коефициенти отговарящи на всяко отместване, а това би ускорило интерполационните процеси.

7. В-канална Интерполация.

Идеята на интерполационните функции е да функционират като нискочестотен филтър и В-каналната интерполация е именно такъв филтър. Докато се изпълнява интерполацията тази функция ще бъде изпробвана четири пъти /в точките за тестване на изображението/. Без

14

Page 15: Point Processing & Geometric processing

значение отместването сумата на пробните точки ще е 1. Няма да има нужда от подтискане на изходите на функцията до максималните възможни стойности на пикселите /Фиг.18/. За разлика от кубичната фукция, В-каналната фукция е строго положителна. Няма и нужда да се притесняваме,че изхода ще падне под 0.

В-каналната фукция извиква най-изгладения образ за разлика от всички останали функции. Едномерната В-канална фукция се дефинира като:

f ( x )={12|x|3−|x|2+ 2

3за|х|ϵ ¿

−16

|x|3+|x|2−2|x|+ 43за|х|ϵ ¿

0 за|х|≥2Знаем , че сумата на всички точки е равна на 1.0 и можем да се

възползваме от този факт. Вместо да се пресмята всичките четири коефициента можем да разделим на четири равни.

Лесно се забелязва грапавината на изображение интерполирано с Най-блиската съседна функция. Увеличаването на изображение с по четири предизвиква копирането на всеки пиксел на четири позиции в направляващото изображение. Това ще създаде ефекта на кубчета в изходното изображение.

Билинейната интерполация е подобрение.

Новите пикселни стойности, които се генерират, са линеен компромис между съществуващите проби. Изходът ще се получи по-гладък от този на най-близката съседна интерполация.

Кубичната конволюционна интерполация обостря контурите на изображение по време на процеса.

В-каналната интеполация води до едно по-добро изглаждане из между всички интерполационни фукции.

8. Мащабиране на изображение.

15

Page 16: Point Processing & Geometric processing

Изображенията често се налага да бъдат оразмерени до някакви измерения. Мащабирането е лесно приложимо за тази цел. Има две важни неща, които трябва да се имат в предвид при мащабиране на изображение:

a. Никога няма да надхвърлим оригиналната резолюция защото няма как да получим повече данни от прихванатите. Може да се направи опит чрез интерполация да се запълнят дупките. Но интерполацията е усредняваща фукция и като такава таква ще промени оригиналните данни от изображението.

b. Всички мащабиращи операции трябва да се изпълняват с данни от оригиналното изображение в противен случей резултантното изображение ще се отдалечава от оригинала с всяка следваща операция.

Например ако увеличим едно изображение по 1.5 и после го смалим отново то по време на увеличаването ще се прибавят запълващи пиксели и когато го смаляваме тези нови пиксели ще бъдат преместени пробите, което ще доведе до ново изображение различно от първоначалното.

Ако се използва най-близката съседна интерполация при мащабиране се получава подобно изображение. Когато увеличаваме изображението пикселите просто се доблират. Този метод е прост и бърз но с много лоши резулатати. Когато намаляваме размера с най-близката интерполация пикселите се взимат извън мащабиращата линия.

Мащабирането на изображение на 33% от размера му предизвиква всеки трети пиксел от всяка трета мащабираща линия да се копира в изходното изображение.

Проблема при взимането на проби, е че финните детайли могат да дбъдат изгубени. Загубването на детайли е в резулатат на смесване. Смесването от своя страна е резултат от взимането на проби с много малка част. Единият от начините за преодоляване е да се замъгли изображението преди скенирането за проби. Друг начин за запазване на детайлите е да се смяли образа.

9. Метод за смаляване на изображението.

a. Средно представяне.Този метод се изпозва за минимизиране. Може да се ползва и за

създаване на миниатюри на изображение.

16

Page 17: Point Processing & Geometric processing

Основната идея на този метод е представянето на област от

пиксели чрез един пиксел. Средното представяне замества цяла област от пиксели с тяхната средна стойност /Фиг.19/.

Това се осъществява като n x n прозорец преминава през изображението. Пикселите се прочитат от областа и се съхраняват по възходящ ред като средния пиксел от този ред се използва да представи цялата област.

b. Усреднено представяне.

Усредненото представяне също използва n x n прозорец и представя областа от пиксели но дава тяхната усреднена стойност.

10. Завъртане.

Представлява завъртане на изображението около централен пиксел през какъвто и да е зададен ъгъл. Основата на алгоритъма е:

17

Page 18: Point Processing & Geometric processing

xизточник=xнаправление∗cos (ъгъл )+ yнаправление∗sin (ъгъл )yизточник= yнаправление∗cos (ъгъл )−xнаправление∗sin (ъгъл )

Тези формули завъртат около точка [0,0], а ако искаме да завъртим около центъра:

xизточник=(x¿¿направление−центъ рx)∗cos (ъгъл )+( yнаправление−центъ р y)∗sin (ъгъл ) ¿yизточник=( y¿¿направление−центъ рy )∗cos (ъгъл )+(xнаправление−центъ рx)∗sin (ъгъл ) ¿Когато x и y координатите бъдат пресметнати, стойностите на

направляващото изображение се интерполират. Трябва да се обърне внимание и да се осигури хизточник и уизточник да лежат в границите на началното изображение. Ако не е така софтуерът ще постави черен пиксел в дестинацията.

Ако ъгълът на въртене е винаги съставян от 900, това не е добър метод за ротация, защото ще има прекалено много пресмятания със десетична запетая. По-бързо ще е разместването на редове и колоони в изображението.

11. Преместване.

Състои се в преместване на част от изображението на друго местоположение в изображението. В никакъв случей не се ползва един буфер, защото резултатите биха били безполезни. По време на процеса на копиране на входните пиксели към изходните пиксели може да се окаже, че вече са били копирани и като резултат ще се получи мултиплициране на определени зони входни пиксели.

12. Огледален ефект.

За да обърнем огледално дадено изображение е достатъчно да обърнем х и у координатите. Хоризонталния огледален образ ще обърне изображението по у и образа от ляво ще премине отдясно. Вертикален огледален образ се обръща по х като горната част на обаза ще стане долна.

Както се очаква обръщането е реорганизиране на пиксели. Представлява чисто геометричен процес, който не есвързан с интерполация а просто преместване на пиксели.

П Р А К Т И Ч Е С К А Ч А С ТП Р А К Т И Ч Е С К А Ч А С Т

18

Page 19: Point Processing & Geometric processing

19

Page 20: Point Processing & Geometric processing

20

Page 21: Point Processing & Geometric processing

Съдържание

ТЕОРЕТИЧНА ЧАСТ

I. Процеси Точка-по-Точка.1. Аритметични операции.

a. Събиране.b. Изваждане.c. Умножение/Делене.

2. XOR – операции.3. Таблици на съответствието.4. Хистограми.5. Изравняване на хистограми.6. Спецификация на хистограми.7. Разтягане на контраст.8. Трансформация на яркост.

a. Нулева трансформация.b. Негативна трансформация.c. Разпъване/ Сгъване на контраст.d. Прагова трансформация.e. Битова ограничителна трансформация.f. Контурна – яркостна трансформация.g. Обхватна трансформация.h. Слънчева трансформация.i. Параболоична трансформация.

II. Геометрични процеси.1. Право срещу Обратно организиране.2. Интерполации.3. Най-близката съседна интерполация.4. Билинейна интерполация.5. Интерполации от висок ред.6. Кубична конвулюционна интерполация.7. В-канална интерполация.8. Мащабиране на изображението.9. Методи за смаляване на изображението.

a. Средно представяне.b. Усреднено представяне.

10. Завъртане.11. Преместване.12. Огледален ефект.

21

Page 22: Point Processing & Geometric processing

ПРАКТИЧЕСКА ЧАСТ

22