L ỜI CẢM Ơ N
3.3 Biến thành ảnh đa cấp xám
3.2.1 Lấy biên theo trục X
Quy trình lấy biên theo trục X sẽđược thực hiện bởi đoạn mã sau:
subplot(1,1,1);
filterx=d2dgauss(Nx1,Sigmax1,Nx2,Sigmax2,Theta1); Ix= conv2(w,filterx,'same');
imagesc(Ix); title('Ix');
Biên lấy theo trục X sẽđược hiển thị qua cửa sổ thứ nhất với kích cỡ cửa sổ 1x1 thông qua hàm subplot(1,1,1), thông qua hàm d2dgauss với những tham số chuẩn được đưa ra phương pháp lọc biên theo trục X sẽđược thực hiện và tiếp là hàm trả lại phần trung của 2 phần
25 giao nhau thông qua hàm conv2(w,filterx,’same’), cuối cùng nội dung sẽđược hiển thị
thông qua imagesc(Ix) với tiêu đề là title(‘Ix’). Và kết quảđược hiển thị:
Đa cấp xám Biên theo trục X H3.4 Lấy theo trục X
3.2.2 Lấy biên theo trục Y
Quy trình lấy biên theo trục Y sẽđược thực hiện bởi đoạn mã sau:
subplot(1,1,1)
filtery=d2dgauss(Ny1,Sigmay1,Ny2,Sigmay2,Theta2); Iy=conv2(w,filtery,'same');
imagesc(Iy); title('Iy');
Biên lấy theo trục X sẽđược hiển thị qua cửa sổ thứ nhất với kích cỡ cửa sổ 1x1 thông qua hàm subplot(1,1,1), thông qua hàm d2dgauss với những tham số chuẩn được đưa ra phương pháp lọc biên theo trục Y sẽđược thực hiện và tiếp là hàm trả lại phần trung của 2 phần giao nhau thông qua hàm conv2(w,filtery,’same’), cuối cùng nội dung sẽđược hiển thị
thông qua imagesc(Iy) với tiêu đề là title(‘Iy’). Và kết quảđược hiển thị:
Đa cấp xám Biên theo trục Y
H3.5 Biến đổi theo trục Y
Biến đổi theo trục X
26
3.2.3 Lấy biên theo Gradient
Phương pháp Gradient là phương pháp lấy biên trực tiếp với sự kết hợp 2 phương pháp lấy biên theo trục X và trục Y ở trên. Hệ số Gradient sẽđược định nghĩa theo đường độ dài
đường chéo hình chữ nhật với 2 cạnh là 2 tham số Ix và Iy. Và hàm được định nghĩa như
sau:
Loc theo phuong phap Gradient(Ket hop loc theo truc X va Y)
subplot(1,1,1);
NVI=sqrt(Ix.*Ix+Iy.*Iy); imagesc(NVI);
title('Norm of Gradient');
Và kết quả nhận được theo phương pháp này:
Biên theo Gradient
H3.6 Biến đổi theo Gradient
3.2.4 Lấy biên theo Thresholding
Phương pháp Thresholding là phương pháp lọc theo ngưỡng và trong trường hợp này thì nhưng hệ số ma trận Gradient mà cao hơn ngưỡng thì sẽđược giữ lại và hiển thị, đoạn mã như sau: I_max=max(max(NVI)); I_min=min(min(NVI)); level=alfa*(I_max-I_min)+I_min;(*) subplot(1,1,1); Ibw=max(NVI,level.*ones(size(NVI))); imagesc(Ibw);
title('After Thresholding');
27
Ởđây các hệ số lớn nhất của ma trận sẽđược tính, sau đó level(ngưỡng) sẽđược tính theo công thức (*), sau đó các hệ số của ma trận sẽđược so sánh với ngưỡng này và được chọn và hiển thị hay còn gọi là phương pháp Thresholding, kết quả như sau:
Biên theo Gradient Biên theo Thresholding
H3.7 Biến đổi theo Thresholding
3.2.5 Lấy biên theo Thinning
Phương pháp Thinning là phức tạp hơn cả, phương pháp sử dụng hàm nội suy ma trận với các ma trận 0,1 và các ma trận các hệ số của thresholding, ma trận hệ số theo trục X chia cho hệ số Gradient, và hệ số trục Y trên hệ số Gradient. Được nội suy thông qua hàm interp2() và sau đó ta sẽ so sánh các hệ số của ma trận nội suy với các hệ số của ma trận thresholding, các hệ số sẽđược chọn và hình thành ma trận mới, cụ thế chương trình như
sau: subplot(1,1,1); [n,m]=size(Ibw); for i=2:n-1, for j=2:m-1, if Ibw(i,j) > level, X=[-1,0,+1;-1,0,+1;-1,0,+1]; Y=[-1,-1,-1;0,0,0;+1,+1,+1]; Z=[Ibw(i-1,j-1),Ibw(i-1,j),Ibw(i-1,j+1); Ibw(i,j-1),Ibw(i,j),Ibw(i,j+1); Ibw(i+1,j-1),Ibw(i+1,j),Ibw(i+1,j+1)]; XI=[Ix(i,j)/NVI(i,j), -Ix(i,j)/NVI(i,j)]; YI=[Iy(i,j)/NVI(i,j), -Iy(i,j)/NVI(i,j)]; ZI=interp2(X,Y,Z,XI,YI);
if Ibw(i,j) >= ZI(1) & Ibw(i,j) >= ZI(2) I_temp(i,j)=I_max; else I_temp(i,j)=I_min; end else I_temp(i,j)=I_min; end end end Biến đổi theo thresholding
28
imagesc(I_temp); title('After Thinning');
Sau đây là kết quả chương trình trên:
Biên theo Thresholding Biên theo Thinning
H3.8 Biến đổi theo Thinning
3.3 Tổng kết
Với việc sử dụng hàm Gauss hai chiều để tạo hiệu ứng mờ Gauss và được sử dụng để
làm trơn để xây dựng các hàm wavelet ứng dụng cho việc xác định biên, cụ thể trong chương trình này ta dùng phương pháp Gradient và sau đó sử dụng thêm các phương pháp
được phát triển lên thêm theo phương pháp Thresholding và Thinning ta đã thu được những
đường biên khác nhau và hiệu quả đã được tăng dần theo từng phương pháp. Điều này sẽ được thể hiện rõ nét hơn khi được thể hiện qua hình dưới:
29
H3.9 Quy trình biến đổi lấy biên theo thinning
Ta thấy biên được tách biệt một cách rõ ràng hơn khi qua phươg pháp Thinning. Với việc lọc biên như thế sẽ rất hiểu quả trong việc trích chọn các đặc trưng khuôn mặt, từđó giúp cho việc nhận dạng khuôn mặt sẽ dễ dàng hơn.
30
Chương 4. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN