Đối sánh ảnh
1. Bài toán
Cho ảnh I có kích thớc MìN và mẫu T có kích thớc mìn. Cần xác định
mẫu T có trong ảnh I hay không?
Cũng nh trong các mục trớc, trong bài toán này các ảnh T, I đều là ảnh
xám. Các giá trị điểm ảnh là cờng độ xám.
Thuật giải:
Thiết lập cửa sổ W có kích thớc bằng T. Di chuyển cửa sổ W trên ảnh I
từ trái sang phải, từ trên xuống dới mỗi lần một cột, một hàng. Tại mỗi vị
trí so sánh hai ma trận điểm ảnh W và T.
Nh vậy, bài toán trên chuyển thành bài toán so sânh hai ảnh T và W có
cùng kích thớc mìn. Số lần thực hiện đối sánh 2 ảnh W và T là =(M-
m+1)ì(N-n+1).
Số phép tính phải thực hiện phụ thuộc vào việc so sánh hai ảnh W và T
nh thế nào và số =(M-m+1)ì(N-n+1).
Để giảm số =(M-m+1)ì(N-n+1) ta có thể thực hiện so sánh thô bằng
cách co ảnh trớc khi dò tìm. Ví dụ, lấy trung bình 4 điểm lân cận để tạo ra
điểm mới cho ảnh kết quả. Việc thu nhỏ này cũng sẽ đợc thực hiện cho mẫu
T.
2. Đối sánh theo điểm ảnh:
Kí hiệu W(i,j) là giá trị của điểm ảnh (i,j), hàng i, cột j, trên cửa sổ W;
T(i,j) là giá trị của điểm ảnh tại ô (i,j) trên mẫu T.
Giá trị
E =
= =
m
i
n
j
jiTjiW
1 1
),(),(
hoặc
e =
( )
2
1 1
),(),(
.
1
= =
m
i
n
j
jiTjiW
nm
Trong các công thức trên E đợc gọi là sai số tuyệt đối, còn e đợc gọi là
sai số tơng đối. Ngời ta so sánh các giá trị sai số này với các giá trị ng ỡng
H hoặc h. Nếu E<H (hoặc tơng tự nh vậy, e<h) thì kết luận W giống (trùng)
với T.
1
Phơng pháp này có hai nhợc điểm lớn là khó định các giá trị ngỡng H và
h và các công thức tính trên rất nhạy với nhiễu. Thật vây, xét trờng hợp ảnh
T và W có kích thớc 100ì100:
a) Mỗi điểm ảnh của W có giá trị cờng độ lớn hơn giá trị của T 1 đơn
vị. Điều này dễ xảy ra bởi quá trình xử lý ảnh thực. Rõ ràng E>
10000.
b) Mỗi dòng ảnh của W có 1 điểm lệch cờng độ so với T 100 đơn vị (do
nhiễu). Rõ ràng là là e>100.
Hai ví dụ trên chỉ ra rằng rất khó định ngỡng H và h.
3. Đối sánh dựa trên ma trận tơng quan
a) ý t
ởng
Biến đổi ảnh T và W thành một ảnh khác để so sánh và chuyên đánh giá
về so sánh trong phạm vi [0,1], là phạm vi đánh giá quen thuộc. Với phạm
vi đánh giá này có thể định ra sai số =0.01 hoặc giá trị rất nhỏ nào đó
khác.
Trong các công thức trong mục này ta xét các tổng với biến chạy từ -
đến +. Trong kí hiệu W(i,j), tơng tự nh vậy đối với T(i,j), nếu i nằm ngoài
khoảng [1 m] hoặc j nằm ngoài khoảng [1 n] ta sẽ coi nh W(i,j)=0, cũng
nh T(i,j)=0.
b) Tính ma trận t
ơng quan R
Xây dựng ma trận R
WT
nh sau:
)1(),().,(),(
+
=
+
=
=
i j
WT
qjkiTjiWqkR
với k = 0, 1, 2, 3, 4, và q = 0, 1, 2, 3, 4
Dễ thấy từ (1)
R
WT
(k,q) = W(i+k,j+q).T(i,j) (2)
Thật vậy, nếu ta đặt i':= i-k, j' := j-q suy ra i := i'+k, j := j'+q. Thay vào
công thức (1) và để ý rằng do cận là từ - đến + nên cận không thay đổi,
từ đó nhận đợc công thức (2).
)1(),().,(),(
+
=
+
=
=
i j
WT
qjkiTjiWqkR
Ví dụ, Hai ảnh W và T có kích thớc 3ì3:
W: 1 2 3
1 1 4
1 1 3
T: 1 2 3
2
1 1 4
1 1 3
R(-2,-2) = W(i,j)T(i+2,j+2), với 1 i 1 và 1 j 1,
R(-2,-2) = W(1,1)T(3,3) = 3
R(-2,-1) = W(i,j)T(i+2,j+1), với 1 i 1 và 1 j 2,
R(-2,-1) = W(1,1)T(3,2) + W(1,2)T(3,3)= 1 + 6 = 7
R(-2,0) = W(i,j)T(i+2,j), với 1 i 1 và 1 j 3,
R(-2,0) = W(1,1)T(3,1)+W(1,2)T(3,2)+W(1,3)T(3,3)= 1+2+9
= 12
R(-2,1) = W(i,j)T(i+2,j-1), với 1 i 1 và 2 j 3,
R(-2,0) = W(1,2)T(3,1)+W(1,3)T(3,2) = 2+3 = 5
Các ma trận tự tơng quan của W cũng nh T:
R
WW
(k,q) = W(i,j).W(i-k,j-q) (3)
R
TT
(k,q) = T(i,j). T(i-k,j-q) (4)
Rõ ràng là R
WW
(0,0) = W
2
(i,j) >0 và R
TT
(0,0) = T
2
(i,j) >0.
c)
Tính ma trận hệ số t
ơng quan Q
)5(
)0,0()0,0(
),(
),(
ƯƯ TTWW
WT
WT
RR
qkR
qkQ =
Nhận xét rằng R
WT
(0,0) chính là tích vô hớng của hai vectơ W và T, khi
này Q
WT
(0,0) chính là cosin góc giữa hai vectơ W và T.
d) Định lý
1. Q
WT
(k,q) 1, k,q = 0, 1, 2, 3,
2. Q
WT
(i
0
,j
0
) = 1 c, sao cho, với i,j có W(i,j) = c.T(i-i
0
,j-j
0
)
Chứng minh định lý:
1. Rõ ràng là (aW(i,j) + T(i-k,j-q))
2
0 với mọi k,q và a hay
(a
2
W
2
(i,j) + T
2
(i-k,j-q) + 2aW(i,j)T(i-k,j-q) ) 0
a
2
W
2
(i,j) + T
2
(i-k,j-q) + 2aW(i,j)T(i-k,j-q) 0
a
2
W
2
(i,j) + 2a W(i,j)T(i-k,j-q) + T
2
(i-k,j-q) 0
' = (W(i,j)T(i-k,j-q))2 - W
2
(i,j) T
2
(i-k,j-q) 0
' = (R
WT
(k,q))2 - W
2
(i,j) T
2
(i-k,j-q) 0
(R
WT
(k,q))2 W
2
(i,j) T
2
(i-k,j-q)
(R
WT
(k,q))2 / W
2
(i,j) T
2
(i-k,j-q) 1 (đpcm).
3
2. Giả thiết là tồn tại hằng số c0 sao cho W(i,j) = c T(i-i
0
,j-j
0
) với mọi
i,j. Hiển nhiên, khi này
R
WT
(i
0
,j
0
) = W(i,j).T(i-i
0
,j-j
0
) = c. W
2
(i,j)
R
WW
(0,0) = W
2
(i,j)
R
TT
(0,0) = T
2
(i,j)= T
2
(i-i
0
,j-j
0
), bằng cách đặt i':=i-i
0
,
j':=j-j
0
và đảo chỉ số nh trên. Cuối cùng ta có:
R
TT
(0,0) = c
2
W
2
(i,j) = c
2
W
2
(i,j) = c
2
R
WW
(0,0).
Từ đây suy ra Q
WT
(i
0
,j
0
) = 1.
Giả sử Q
WT
(i
0
,j
0
) =1 với (i
0
,j
0
) nào đó. Từ chứng minh trên suy ra
' = (R
WT
(k,q))2 - W
2
(i,j) T
2
(i-i
0
,j-j
0
) = 0
Dẫn đến tồn tại duy nhất một giá trị c sao cho
c
2
W
2
(i,j) + 2c W(i,j)T(i-i
0
,j-j
0
) + T
2
(i-i
0
,j-j
0
) = 0
Hay (cW(i,j) + T(i-i
0
,j-j
0
))
2
= 0. Suy ra
-cW(i,j) = T(i-i
0
,j-j
0
).
Đặt lại c := -1/c ta có điều phải chứng minh.
Nhận xét rằng W(i,j) = c.T(i,j) với mọi i,j có thể hiểu rằng c ờng độ
sáng của W bằng c lần cờng độ sáng của T, tính theo từng điểm ảnh.
Trong biểu thức W(i,j) = c.T(i-i
0
,j-j
0
) có thể hiểu rằng, nếu rời điểm
(1,1) của W đến điểm (i
0
,j
0
) của T thì ta nhận đợc hai phần nào đó
của W và T lệch nhau về cờng độ sáng c lần.
4. Hệ quả
Nếu hệ số tơng quan Q
WT
(k,q)=1 thì hoặc T là thành phần của W
hoặc W và T giống nhau.
5. Tính ma trận R
WT
Ta có thể dễ dàng thấy rằng ma trận R có kích thớc (2m-1)ì(2n-1).
Nếu ta chia ma trận R thành 4 phần. Xét công thức W(i,j)T(i-k,j-q)
với 1 i m, 1 j n. Rõ ràng là khi k [-m+1 m-1] thì T(i-k,j-q)
không xác định (ở trên ta đã giả thiết là bằng 0 để dễ biến đổi.
For k:=-m+1 to m-1; For q:=-n+1 to n-1 R(k,q) := 0;
Tính phần A:
k:= -m+1 to -1
q:= - n+1 to -1
A B
C D
4
1≤ i-k ≤ m ⇒ 1+k ≤ i ≤ m+k ⇒ 1
≤
i
≤
m+k
1≤ j-q ≤ n ⇒ 1+q ≤ j ≤ n+q ⇒ 1
≤
j
≤
n+ q
TÝnh phÇn B:
k:= -m+1 to -1
q:= 0 to n-1
1≤ i-k ≤ m ⇒ 1+k ≤ i ≤ m+k ⇒ 1
≤
i
≤
m+k
1≤ j-q ≤ n ⇒ 1+q ≤ j ≤ n+q ⇒ 1+q
≤
j
≤
n
TÝnh phÇn C:
k:= 0 to m-1
q:= - n+1 to -1
1≤ i-k ≤ m ⇒ 1+k ≤ i ≤ m+k ⇒ 1+k
≤
i
≤
m
1≤ j-q ≤ n ⇒ 1+q ≤ j ≤ n+q ⇒ 1
≤
j
≤
n+ q
TÝnh phÇn D:
k:= 0 to m-1
q:= 0 to n-1
1≤ i-k ≤ m ⇒ 1+k ≤ i ≤ m+k ⇒ 1+k
≤
i
≤
m
1≤ j-q ≤ n ⇒ 1+q ≤ j ≤ n+q ⇒ 1+q
≤
j
≤
n
R(k,q) := R(k,q) + W(i,j)*T(i-k,j-q);
VÝ dô:
1. Hai ¶nh W vµ T gièng hÖt nhau
W: 1 2 3
1 1 4
1 1 3
T: 1 2 3
1 1 4
1 1 3
Q:
0.07 0.16 0.28 0.12 0.07
0.16 0.30 0.67 0.23 0.16
0.23 0.40 1.00 0.40 0.23
0.16 0.23 0.67 0.30 0.16
0.07 0.12 0.28 0.16 0.07
2. Hai ¶nh W vµ T lÖch nhau W = 3T
W:
3 6 9
3 3 12
3 3 9
T:
1 2 3
1 1 4
1 1 3
Q:
5
0.07 0.16 0.28 0.12 0.07
0.16 0.30 0.67 0.23 0.16
0.23 0.40 1.00 0.40 0.23
0.16 0.23 0.67 0.30 0.16
0.07 0.12 0.28 0.16 0.07
3. Hai ¶nh W vµ T lÖch nhau W = T +2
W:
3 4 5
3 3 6
3 3 5
T:
1 2 3
1 1 4
1 1 3
Q:
0.11 0.19 0.28 0.11 0.06
0.26 0.39 0.64 0.23 0.14
0.38 0.57 0.97 0.39 0.20
0.26 0.38 0.67 0.29 0.14
0.11 0.19 0.30 0.16 0.06
4. Hai ¶nh W vµ T lÖch nhau t¹i mét ®iÓm ¶nh
W:
1 2 3
1 1 7
1 1 3
T:
1 2 3
1 1 4
1 1 3
Q:
0.05 0.12 0.21 0.09 0.05
0.12 0.23 0.66 0.23 0.17
0.17 0.30 0.96 0.35 0.23
0.12 0.17 0.66 0.33 0.17
0.05 0.09 0.21 0.12 0.05
Const n=3; m=3;
Type Anh = Array[1 m,1 n] of byte;
TQ = Array[-m+1 m-1,-n+1 n-1] of Real;
Const T : Anh = (( 1, 2, 3),
( 1, 1, 4),
( 1, 1, 3));
W : Anh = ( ( 1, 2, 3),
( 1, 1, 7),
( 1, 1, 3));
Var i,j,k,q : Integer;
R, MQ : TQ;
6
Mw,Mt : Real;
f : Text;
BEGIN
Mw:=0; For i:=1 to m do For j:=1 to n do Mw := Mw + Sqr(W[i,j]);
Mt:=0; For i:=1 to m do For j:=1 to n do Mt := Mt + Sqr(T[i,j]);
For k:=-m+1 to m-1 do For q:=-n+1 to n-1 do R[k,q] := 0;
{ Tinh phan A:}
For k:= -m+1 to -1 do For q:= - n+1 to -1 do
For i:=1 to m+k do For j:=1 to n+q do
R[k,q] := R[k,q] + W[i,j]*T[i-k,j-q];
{ Tinh phan B:}
For k:= -m+1 to -1 do For q:= 0 to n-1 do
For i:=1 to m+k do For j:=1+q to n do
R[k,q] := R[k,q] + W[i,j]*T[i-k,j-q];
{ Tinh phan C:}
For k:= 0 to m-1 do For q:= - n+1 to -1 do
For i:=1+k to m do For j:=1 to n+q do
R[k,q] := R[k,q] + W[i,j]*T[i-k,j-q];
{ Tinh phan D:}
For k:= 0 to m-1 do For q:= 0 to n-1 do
For i:=1+k to m do For j:=1+q to n do
R[k,q] := R[k,q] + W[i,j]*T[i-k,j-q];
For k:=-m+1 to m-1 do
Begin
For q:=-n+1 to n-1 do write(R[k,q]/Sqrt(Mw*Mt):10:2);
Writeln;
End;
Readln;
END.
7