Korekcja zniekształceń geometrycznych w kamerach

background image

Piotr Kozyra

Paweł Chuchła

Korekcja zniekształceń geometrycznych w

kamerach

background image

str. 2

1.Wstęp

Niniejsza praca ma na celu przybliżenie analizy i korekcji zniekształceń

geometrycznych kamer cyfrowych . Zdecydowano się na przyjęcie do analizy zniekształceń
radialnych ze względu na uproszczenie obliczeń.

2.Przetwarzanie obrazów

Komputerowy zapis obrazów posiada wiele różnych formatów i sposobów. Ze

względu na złożoność budowy naturalnego środowiska wszystkie modele zapisu są pewnymi
przybliżeniami opisu otoczenia. Liczba kolorów w świecie rzeczywistym jest nieskończona.
Jednakże ludzkie oko dostrzega tylko pewien zakres barw , są to barwy z zakresu widzialnego
widma światła. Przeniesienie danych cech otoczenia na postać cyfrową jest trudne i związane
z pewnymi ograniczeniami. Układy komputerowe mają skończoną liczbę pamięci oraz
skończone możliwości pobierania i przetwarzania energii a tym samym skończoną liczbę
bodźców które mogą oddziaływać na układ.

Układy cyfrowe mają pewne ograniczenia wynikające z złożoności budowy

naturalnego środowiska. W celu możliwości przetwarzania obrazu stosuje się kilka
uproszczeń takich jak :ograniczenie zdolności rozpoznawania szczegółów, ograniczenie ilości
rozpoznawanych stanów obrazu (kolorów) , analiza obrazu płaskiego statycznego zamiast
przestrzennego i dynamicznego.

Redukcja zdolności rozpoznawania szczegółów zrealizowana jest poprzez

dyskretyzację obrazu przeprowadzoną w wyniku podziału obrazu na siatkę punktów pikseli.
Obraz taki jest reprezentowany przez siatkę MxN pikseli, która określa liczbę spróbkowanych
punktów w pionie i w poziomie. Rozmiar siatki jest określany jako rozdzielczość ekranu.
Większa liczba pikseli powoduje zwiększenie szczegółowości obrazu a więc możliwość
przekazania więcej informacji o danym obiekcie reprezentowanym cyfrowo. Zwiększenie
wielkości siatki- rozdzielczości powoduje też zwiększenie złożoności obliczeń ze względu na
konieczność większej liczby działań gdyż wzrosła liczba punktów. Kompromisem jest dobór
odpowiedniej szczegółowości a szybkości przetwarzania obrazu

Rysunek 1 Prostokątna siatka obrazu cyfrowego o rozdzielczości MxN

background image

str. 3

Drugim ważnym ograniczeniem jest liczba kolorów mogących zostać zapisana.

Najpopularniejszymi

obecnie

przestrzeniami

kolorów

postacie:

binarna,

monochromatyczna, kolorowa w przestrzeni RGB i kolorowa w przestrzeni HSV

Obraz binarny jest reprezentacją w której piksel przyjmuje jedną z dwóch wartości

albo barwę białą albo barwę czarną .

Obraz monochromatyczny najczęściej występuje w postaci obrazu szarościowego.

Posiada szereg skwantowanych wartości pikseli które mogą przyjmować wartości z
określonego przedziału . Dla ośmiobitowej reprezentacji obraz taki posiada wartości
graniczne 0 (czerń) i 255 (biel) . Wartości między tym punktami granicznymi są odcieniami.
Liczba poziomów jasności jest potęgą liczby dwa i zależy od liczby bitów przeznaczonych na
zapis obrazu przez kartę graficzną

Obraz RGB jest obrazem o złożonej postaci zapisu . Istotą tego zapisu jest przypisanie

jednemu pikselowi trzech składowych o różnych poziomach jasności :czerwonej , zielonej i
niebieskiej. Przestrzeń RGB jest przestrzenią euklidesową a liczba kolorów możliwych do
zapisania wynosi ponad 16.5 miliona.

3.Zniekształcenia obrazów

Ze względu na tani koszt produkcji pojawiło się wiele elementów cyfrowych ,

aparatów, soczewek których jakość przetwarzania dodatkowo utrudnia przetwarzanie
obrazów. Do jednych z takich utrudnień należą zniekształcenia tangecjalne. Spowodowane są
niedokładnością umiejscowienia matrycy względem soczewki , kiedy istnieje
nierównoległość umiejscowienia soczewki względem płaszczyzny matrycy.

Rysunek 2 Model powstawania zniekształceo tangecjalnych

background image

str. 4

Rysunek 3 Rzeczywisty model zniekształceo tangecjalnych

Zniekształcenia te mogą zostać skorygowane poprzez wyprowadzenie dwóch nowych
parametrów p1 i p2 , gdzie r jest odległością punktów od środka matrycy

𝑥

𝑠𝑘𝑜𝑟𝑦𝑔𝑜𝑤𝑎𝑛𝑒

= 𝑥 + [2𝑝

1

𝑦 + 𝑝

2

𝑟

2

+ 2𝑥

2

]

𝑦

𝑠𝑘𝑜𝑟𝑦𝑔𝑜𝑤𝑎𝑛𝑒

= 𝑥 + [2𝑝

1

𝑟

2

+ 2𝑥

2

+ 𝑝

2

𝑥]

Innymi popularnymi zniekształceniami w przetwarzaniu cyfrowym obrazów jest błąd

w pozycji matrycy wynikający z konstrukcji soczewki. Są to zniekształcenia radialne .
Spowodowane są faktem iż promienie padające na obszar brzegu soczewki są bardziej
zakrzywiane, niż promienie świetlne padające w jej środku. Z tego powodu zniekształcenia
radialne najmniej widoczne są w centrum matrycy i najbardziej na rogach matrycy gdzie
promień zniekształcenia jest już większy

Rysunek 4 Przykład powstawania zniekształceo radialnych

background image

str. 5

Rysunek 5 Rzeczywisty obraz zniekształceo radialnych ,

poszczególne koła są obszarami o jednakowym zniekształceniu

Korekcji zniekształceń można dokonać poprzez wyznaczenie dwóch parametrów k

1

i k

2

.

Takie rozwiązanie jest poprawne dla większości kamer . W sporadycznych przypadkach
trzeba zastosować współczynnik k

3.

𝑥 = 𝑥(1 + 𝑘

1

𝑟

2

+ 𝑘

2

𝑟

4

+ 𝑘

3

𝑟

6

)

𝑦 = 𝑦(1 + 𝑘

1

𝑟

2

+ 𝑘

2

𝑟

4

+ 𝑘

3

𝑟

6

)

4.Symulacja zniekształceń w programie Matlab

W pracy przyjęto model zniekształceń radialnych w którym promień zniekształcenia

jest zależny od promienia rzeczywistego .

𝑟

𝑘

𝑟 = 𝑎

𝑛

𝑟

𝑛

4

𝑛=0

Obraz testowy (rys 4) został wczytany do pakietu matlab w postaci RGB a następnie
przekonwertowany do obrazu monochromatycznego

a = imread('test3.png');

[z2 map]=rgb2ind(a,65500);


Następnie obraz poddano zniekształceniu geometrycznemu w postaci zależności promienia
zniekształconego

r2=r+k0*r^2+k2*r^3+k3*r^4;

gdzie

k0=1.65e-4;

k2=6.92*10^(-7);

k3=8.29*10^(-9);

Wynik zniekształcenia został pokazany na rysunku 7

background image

str. 6

Rysunek 6 Obraz testowy

Rysunek 7 Obraz zniekształcony radialnie

Proces zniekształcenia został zrealizowany w sposób iteracyjny. Dla każdego piksela
wyznaczany jest nowa współrzędna w obrazie zniekształconym.

for k1=1:300

for k=1:300

r=sqrt((k1-xs)^2+(k-ys)^2); %promień obrazu orginalnego

r2=r+k0*r^2+k2*r^3+k3*r^4; %promień zniekształcenia

kat=atan((k-150)/(k1-150)); %wyliczenie kąta między wsp x,y

x2=round(r2*cos(kat))+150; %wyliczenie nowej współrzędnej x

y2=round(r2*sin(kat))+150; %wyliczenie nowej współrzędnej y

if (r>0 && x2>0 && x2<wymiar(1) && y2>0 && y2<wymiar(2))

z3(k1,k)=z2(x2,y2);

end

end

end

background image

str. 7

W celu wyliczenia współrzednej x i y zastosowano właściwości matematyczne przestrzeni
geometrycznej. Współrzędne kartezjańskie zamieniono na biegunowe gdzie do opisu
wykorzystywany jest kąt między promieniem r a osią Ox oraz promień x. Dla nowych
współrzędnych promień jest zmienny natomiast kąt jest bez zmian.

xs=round(wymiar(1)/2); % wyznaczenie współrzędnej x środka obrazu

ys=round(wymiar(2)/2); % wyznaczenie współrzędnej y środka obrazu


W tak zniekształconym obrazie spróbowano usunąć zakłócenie.
Wyznaczono kontur obrazu i wyznaczono środek zniekształceń geometrycznych obrazu

BW2=bwperim(z3,8);

srodek=regionprops(BW2,'centroid');

centr = cat(1, srodek.Centroid);

xs1=round(mean(centr(:,1)));

ys1=round(mean(centr(:,2)));

Następnie podzielono obraz na na punkty charakterystyczne

ff=regionprops(BW2,

'ConvexHull'

);

zzzz=cat(1, ff.ConvexHull);


Potem przez poszczególne części obrazu wyznaczono funkcją

polyfit(x,y,3)

wielomian

stopnia 4 obrazujący poszczególne zniekształcenia . Potem dokonano minimalizacji funkcji

Efektem prac było wyliczenie współcznników funkcji zniekształcenia które różniły się od
zadanego pierwotnie zniekształceń
Wyliczone współczynniki:

k02=0.000165;

k22=6.92*10^(-7);

k32=8.29*10^(-9);

Rysunek 8 Obraz po korekcji zniekształceo (lewy ) , obraz przez zniekształceniem (prawy)

background image

str. 8

5.Podsumowanie

Jak można zauważyć korekcja zniekształceń nie przywróciła w 100% formatu

dawnego obrazu . Widoczne są jeszcze drobne zniekształcenia na krawędziach obrazu.
Niedokładność odtworzenia spowodowania jest niedokładnością obliczeń oraz błędami
zaokrąglenia wynikającą ze skończonej reprezentacji liczby zmiennoprzecinkowej.
Dodatkowo współrzędnie pikseli musza być liczbą całkowitą więc i w tym punkcie dochodzi
do zniekształcenia odwzorowania. Sam proces obliczeniowy jest złożony i pracochłonny .
Złożoność algorytmu zakłócającego w przypadku obrazu kwadratowego wynosi 𝑛

2

gdzie n

jest liczbą pikseli na jednej ścianki. Dla obrazu 300x300 px program wykonywał się już w
zauważalny czasowo sposób. W przypadku obrazka testowego o wymiarach 900x900px
proces trwał porównywalnie dłużej . Usuwanie zniekształceń jest jeszcze bardziej
pracochłonne i czasochłonne w porównaniu z zakłócaniem .Pokazuje to iż problem
złożoności przetwarzania obrazów w postaci cyfrowej jest procesem skomplikowanym
matematyczne ze względu na mnogość operacji do wykonania.

Rosnąca popularność optyki i elektroniki cyfrowej spowodowała polepszenie rozwoju

tej dziedziny. Kamery cyfrowe i aparaty dysponują doskonalszymi elementami. W tanich
cyfrówkach efekt zniekształceń radialnych jest coraz rzadziej spotykany . Obecnie efekt ten
występuję w kamerach bronchoskopowych używanych w diagnostyce medycznej. W
przypadku technicznym efekt radialności obrazu jest efektem niekorzystnym lecz nie można
go zniwelować w jednoznaczny sposób mechaniczny.

Zniekształcenia geometryczne radialne powstają też w naturze. Inaczej są zwane

efektem rybiego oka ze względu na podobnie zniekształcony obraz w oku ryby. Programy
graficzne posiadają odpowiednie filtry to wprowadzania tego typu zniekształceń. Często w
celach artystycznych efekt ten jest dodawany do fotografii i powoduje urozmaicenie
oglądanych zdjęć.

Skorygowanie

zniekształceń

obrazu

cyfrowego

jest

procesem

operacji

matematycznych realizowanych na zbiorze pikseli. W zależności od spodziewanego efektu
korygując staramy się wydobyć obraz orginalny. Od sposobu modelowania zjawiska oraz
przyjętego sposobu obliczeń zależy czas działania i uzyskany efekt. Jednakże największą
zagadką korekcji jest odpowiedź na pytanie jak wygląda orginalny obraz i czy można go
wyliczyć?


Wyszukiwarka

Podobne podstrony:
KOREKCJA ZNIEKSZTALCEN GEOMETRYCZNYCH OBRAZOW CYFROWYCH
Adobe Photoshop Elements 9 Korekta zniekształceń geometrycznych
ZNIEKSZTAŁCENIA Kk. DOLNYCH, College, Pedagogika, rok III, Gimnastyka korekc. - kompens
ZNIEKSZTAŁCENIA KOŃCZYN DOLNYCH, College, Pedagogika, rok III, Gimnastyka korekc. - kompens
geometria w płaszczyźnie
GEOMETRIA
GEOMETRIA OBLICZENIOWA I
istota po korekcie
lec6a Geometric and Brightness Image Interpolation 17
Teoria post korekcyjnego nr 1
Znieksztalcenia szyi
Geometria wykreślna Ćwiczenie 8
Algebra liniowa i geometria kolokwia AGH 2012 13
Geometria wykreślna przenikanie brył2
GK 9 Przekształcenia geometryczne

więcej podobnych podstron