![Page 1: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/1.jpg)
KÉPFELDOLGOZÁS
3. gyakorlat:
Pontoperációk
![Page 2: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/2.jpg)
Pontoperációk
A kimeneti (i, j) pixel értéke csak a
bemeneti (i, j) pixel(ek) értékétől függ.
IN[i, j] OUT[i, j]
i
j
i
j
![Page 3: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/3.jpg)
Aritmetikai műveletek
• Súlyozott összeg
• Kivonás
• Maszkolás
![Page 4: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/4.jpg)
Súlyozott összeg
Képek kombinálására („összemosás”)
+ 0.5 ×0.5 ×
![Page 5: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/5.jpg)
Súlyozott összeg (példa)
+
dim2(2)dim2(2) - dim1(2)+1
img1 = imread('darwin_gray.jpg');
img2 = imread('zebras_gray.jpg');
dim1 = size(img1);
dim2 = size(img2);
resimg = img2;
resimg(1:dim1(1), ...
dim2(2)-dim1(2)+1:dim2(2))= ...
0.5*img1 + ...
0.5*img2(1:dim1(1), ...
dim2(2)-dim1(2)+1:dim2(2));
imshow(resimg);
dim1(1)
dim2(1)
![Page 6: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/6.jpg)
Kivonás
Képek közötti eltérések vizsgálatához
-
![Page 7: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/7.jpg)
Kivonás (példa)
-
img1 = imread('cam1.jpg');
img2 = imread('cam2.jpg');
diffimg = abs(double(img2)- double(img1));
imshow(uint8(diffimg));
uint8-ban a negatív értékek elvesznének
![Page 8: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/8.jpg)
Maszkolás
Bizonyos részek kinullázása egy bináris maszkkal
-.*.*
![Page 9: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/9.jpg)
Maszkolás (példa)
-
img1 = imread('new_york1.jpg');
img2 = imread('new_york2.jpg');
resimg = img1 .* (img2 / 255) ;
imshow(resimg);A második „kép” 0 és 255 értékeket
tartalmaz, de nekünk 0 és 1 értékek kellenek!
.*
.*
![Page 10: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/10.jpg)
Álszínezés
Egy szürkeárnyalatos kép minden egyes
szürkeárnyalatához egy-egy színt
rendelünk hozzá.
![Page 11: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/11.jpg)
Álszínezés (példa)img = imread('island.jpg’);
dims = size(img);
mycolormap = uint8(zeros(256, 3));
for i=1:128;
mycolormap(i,:) = [254-2*i, 2*i, 0];
mycolormap(128+i,:) = [0, 254-2*i, 2*i];
end
for r = 1:dims(1);
for c=1:dims(2);
for i=1:3;
resimg(r,c,i) = ...
mycolormap(img(r,c)+1, i);
end;
end;
end;
imshow(resimg);
kód szín
0 [254,0,0]
1 [252,2,0]
2 [250,4,0]
… …
126 [2,252,0]
127 [0,254,0]
128 [0,252,2]
… …
254 [0,2,252]
255 [0,0,254]
![Page 12: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/12.jpg)
Intenzitás transzformációk
• Invertálás
• Logaritmikus transzformáció
• Gamma korrekció
![Page 13: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/13.jpg)
Invertálás
iout = max – iin(max: intenzitástartomány maximuma)
![Page 14: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/14.jpg)
Logaritmikus transzformáció
iout = c ∙log(1 + iin)
(c > 0)
c = 2
![Page 15: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/15.jpg)
Gamma korrekció
iout = c ∙ iinγ
(c, γ > 0)
c = 2
γ = 2
![Page 16: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/16.jpg)
Intenzitás transzformációk (példa)img = imread('cameraman.tif');
I = 255-img;
figure('Name', 'Invertálás')
imshow(I);
img = im2double(img);
L1 = log(1+img);
L2 = 2*log(1+img);
L3 = 5*log(1+img);
figure('Name', 'Logaritmus ...
transzformáció')
imshow([img,L1;L2,L3])
G1 = 2 *img .^ 0.5;
G2 = 2 *img .^ 2;
G3 = 2 * img .^ 3;
figure('Name','Gamma korrekció')
imshow([img,G1;G2,G3])
double-ra konvertál és
átskálázza az intenzitásokat
a [0,1] tartományra
![Page 17: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/17.jpg)
Összehasonlítás
![Page 18: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/18.jpg)
1 ha iin < T
0 különben
Küszöbölés küszöbérték felett / alatt
1 ha iin ≥ T
0 különbeniout =
iout =
T = 120
![Page 19: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/19.jpg)
Küszöbölés intervallumon belül / kívül
1, ha Tlow ≤ iin ≤ Thigh
0 különbeniout =
iout =
Tlow = 155
Thigh = 200
1, ha iin < Tlow vagy iin > Thigh
0 különben
![Page 20: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/20.jpg)
Vágás
Maszkolás a küszöbölt képpel.
.*
![Page 21: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/21.jpg)
Küszöbölés és vágás (példa)img = imread('cameraman.tif');
T1A = img >= 120;
T1B = img < 120;
T2A = 155 <= img & img < 200;
T2B = 155 > img | img > 200;
C1 = img .* uint8(T1A);
C2 = img .* uint8(T2A);
subplot(2,3,1);
imshow(T1A);
title('Küszöbölés ...
küszöb felett')
subplot(2,3,2);
imshow(T1B);
title('Küszöbölés ...
küszöb alatt')
...
![Page 22: KÉPFELDOLGOZÁS - u-szeged.hupkardos/oktatas/kepfeld/DIP_03.pdf · Pontoperációk A kimeneti (i, j) pixel értéke csak a bemeneti (i, j) pixel(ek) értékétől függ. IN[i, j]](https://reader034.vdocuments.pub/reader034/viewer/2022051811/601ceb678974bf48b6462311/html5/thumbnails/22.jpg)
Vágás (példa)
Imin = min(img(:));
Imax = max(img(:));
d = Imax - Imin;
thresh = Imin + 0.2*d < img & ...
img < Imax - 0.2*d;
clip = img .* uint8(thresh);
Teljes intenzitástartomány alsó és felső 20 %-ának vágása (nullázása):
IminImax
d
0.2 ∙ d 0.2 ∙ d