L ỜI CẢM Ơ N
3.1.1 Lấy biên theo trục X
Với các thông số chuẩn của hàm Gauss, khi lấy biên theo trục X ta sẽđưa bức ảnh về
kích thước 10X10, các tham số chuẩn của hàm Gauss Sigmax1=Sigmax2=1, góc quay
Theta1=pi/2. Sau khi ảnh vào được đọc bởi hàm imread(image) và được chuyển thành ảnh
đa cấp xám qua hàm ind2gray(x, map). Và quy trình lấy biên theo trục X sẽđược tiến hành với ảnh đa cấp xám này. Ta sử dụng hàm d2dgauss là hàm với các tham số cụ thể:
filterx=d2dgauss(Nx1,Sigmax1,Nx2,Sigmax2,Theta1); w=ind2gray(x,map);
Qua bước xử lý này thì đã lấy được biên theo các tham sốứng với trục X, bước tiếp theo là hiển thị ra màn hình biên theo trục X. Ta sử dụng hàm conv2:
Ix= conv2(w,filterx,'parameters');
Với hàm Conv2 với shape = same: conv2(matrix, kernel, 'same'), ma trận kết quả có chiều giống như matrix, và giá trị tại mổi phần tửđược tính bằng cách quét tâm của kernel trên toàn bộ matrix rối tính tổng tích các cặp điểm tương ứng giữa matrix và kernel. Điểm
20 tâm của kernel được xác định bằng điểm giữa của ma trận, ví dụ nếu kernel là ma trận 3x3 thì tâm là điểm có tọa độ 1:1, nếu kernel là ma trận 4x4 thì tâm cũng là điểm 1:1.
Conv2 với shape = full: conv2(matrix, kernel, 'full'), nếu matrix có chiều là m1 x n1, kernel có chiều là m2 x n2 thì ma trận kết quả có chiều là (m1 + m2 - 1) x (n1 + n2 - 1) và giá trị tại mổi phần tửđược tính bằng cách quét toàn bộ, tuần tự từng điểm của ma trận Kernel lên từng điểm trên ma trận matrix sau đó tính tổng tính các cặp điểm tương ứng, trong quá trình quét có những điểm trên Kernel nằm ngoài matrix khi đó tích của nó bằng 0.
Conv2 với shape = valid: conv2(matrix, kernel, 'valid'), nếu matrix có chiều là m1 x n1, kernel có chiều là m2 x n2 thì ma trận kết quả có chiều là (m1 - m2 + 1) x (n1 - n2 + 1) và giá trị tại mỗi phần tửđược tính giống như trường hợp full nhưng với điều kiện là ma trận kernel trong quá trình quét luôn nằm trọn vẹn bên trong ma trận matrix.
H3.2 Hàm conv2 với tham số same H3.3 Hàm conv2 với tham số full H3.2 Hàm conv2 với tham số valid
21