1. Đạo hàm bậc nhất.
- Bộ lọc đạo hàm bậc nhất gồm có 3 kernel lọc phổ biến nhất là: Roberts, Prewitt và Sobel. Cả ba đều được thực hiện là sự kết hợp của hai kernel: x-derivative và y-derivative (Hình 4.9).Đơn giản nhất là toán tử Roberts 2 × 2 là một trong những phương pháp đầu tiên được sử dụng để phát hiện các cạnh biên. Phương pháp Roberts tính toán đơn giản, tính toán Gradient không gian 2-D trên một hình ảnhvùng tần số không gian cao thường tương ứng với các cạnh biên. Bộ tách biên này được dùng ít hơn các bộ tách khác do chức năng giới hạn của nó (nó không đối xứng và không thể được tổng quát hóa để tách biên là thừa số của 45 độ). Tuy nhiên, nó vẫn được dùng thường xuyên trong hiện thực phần cứng khi tính đơn giản và tốc độ là các yếu tố chi phối.
- Về lý thuyết, các phép toán bao gồm một cặp kernel chập 2x2. Một kernel khác chỉ đơn giản là quay một góc 90°. Bộ lọc Roberts được thực hiện dùng hai kernel chập, đáp ứng tối đa với cạnh chạy ở 45° vào lưới pixel. Các kernel áp dụng riêng cho hình ảnh đầu vào, để tạo các phép đo riêng biệt của các thành phần gradient trong mỗi hướng (gọi những Gx và Gy). Nhưng sau đó có thể được kết hợp với nhau để tìm ra độ lớn tuyệt đối của gradient tại mỗi điểm và định hướng của gradient. Độ lớn Gradient được cho bởi:
- Trong trường hợp này, định hướng = 0, nghĩa là hướng của tương phản tối đa từ màu đen sang màu trắng chạy từ trái sang phải vào hình ảnh. Các bộ lọc Roberts rất nhanh chóng để tính toán (do kích thước tối thiểu của các kernel nhưng nó rất nhạy với nhiễu. Các bộ lọc cạnh biên Prewitt và Sobel khắc phụ những hạn chế của bộ lọc Roberts như chống nhiễu tốt hơn, nhưng sử dụng mặt nạ chập hơi phức tạp hơn.
- Các kernel Prewitt / Sobel thường được dùng hơn Roberts vì gradient không dịch chuyển bởi một nửa điểm ảnh theo cả hai hướng và mở rộng kích thước lớn hơn (3x3). Sự khác biệt chính giữa các nhà khai thác Sobel và Prewitt là hạt nhân Sobel thực hiện phân biệt trong một hướng và (xấp xỉ) trung bình Gaussian theo hướng kia. Ưu điểm của việc này là nó làm mịn vùng cạnh biên, làm giảm nhiễu.
** CODE MATLAB.
- Chúng ta dùng hàm edge() để tạo ra các bộ lọc cạnh biên. Cú pháp edge(I,'sobel'): với I là ảnh gốc, và tên bộ lọc biên kèm theo. Nâng cao hơn chúng ta có thể thêm giá trị ngưỡng vào hàm edge như sau: edge(Image, ‘filter name’, threshold).
CHÚ Ý: Bài viết mình dịch hơi vội nên có gì sai sót thì thông cảm và cmt góp ý ạ. Cảm ơn.
DOWN TOAN BO CODE VÀ HINH ANH.
CODE MATLAB
HINH ANH
- Bộ lọc đạo hàm bậc nhất gồm có 3 kernel lọc phổ biến nhất là: Roberts, Prewitt và Sobel. Cả ba đều được thực hiện là sự kết hợp của hai kernel: x-derivative và y-derivative (Hình 4.9).Đơn giản nhất là toán tử Roberts 2 × 2 là một trong những phương pháp đầu tiên được sử dụng để phát hiện các cạnh biên. Phương pháp Roberts tính toán đơn giản, tính toán Gradient không gian 2-D trên một hình ảnhvùng tần số không gian cao thường tương ứng với các cạnh biên. Bộ tách biên này được dùng ít hơn các bộ tách khác do chức năng giới hạn của nó (nó không đối xứng và không thể được tổng quát hóa để tách biên là thừa số của 45 độ). Tuy nhiên, nó vẫn được dùng thường xuyên trong hiện thực phần cứng khi tính đơn giản và tốc độ là các yếu tố chi phối.
- Về lý thuyết, các phép toán bao gồm một cặp kernel chập 2x2. Một kernel khác chỉ đơn giản là quay một góc 90°. Bộ lọc Roberts được thực hiện dùng hai kernel chập, đáp ứng tối đa với cạnh chạy ở 45° vào lưới pixel. Các kernel áp dụng riêng cho hình ảnh đầu vào, để tạo các phép đo riêng biệt của các thành phần gradient trong mỗi hướng (gọi những Gx và Gy). Nhưng sau đó có thể được kết hợp với nhau để tìm ra độ lớn tuyệt đối của gradient tại mỗi điểm và định hướng của gradient. Độ lớn Gradient được cho bởi:
- Trong trường hợp này, định hướng = 0, nghĩa là hướng của tương phản tối đa từ màu đen sang màu trắng chạy từ trái sang phải vào hình ảnh. Các bộ lọc Roberts rất nhanh chóng để tính toán (do kích thước tối thiểu của các kernel nhưng nó rất nhạy với nhiễu. Các bộ lọc cạnh biên Prewitt và Sobel khắc phụ những hạn chế của bộ lọc Roberts như chống nhiễu tốt hơn, nhưng sử dụng mặt nạ chập hơi phức tạp hơn.
- Các kernel Prewitt / Sobel thường được dùng hơn Roberts vì gradient không dịch chuyển bởi một nửa điểm ảnh theo cả hai hướng và mở rộng kích thước lớn hơn (3x3). Sự khác biệt chính giữa các nhà khai thác Sobel và Prewitt là hạt nhân Sobel thực hiện phân biệt trong một hướng và (xấp xỉ) trung bình Gaussian theo hướng kia. Ưu điểm của việc này là nó làm mịn vùng cạnh biên, làm giảm nhiễu.
** CODE MATLAB.
Mã:
I=imread('circuit.tif'); % Read in image
IEr = edge(I,'roberts'); % roberts edges
IEp = edge(I,'prewitt'); % prewitt edges
IEs = edge(I,'sobel'); % sobel edges
subplot(2,2,1), imshow(I); % Display image
subplot(2,2,2), imshow(IEr); % Display image
subplot(2,2,3), imshow(IEp); % Display image
subplot(2,2,4), imshow(IEs); % Display image
- Chúng ta dùng hàm edge() để tạo ra các bộ lọc cạnh biên. Cú pháp edge(I,'sobel'): với I là ảnh gốc, và tên bộ lọc biên kèm theo. Nâng cao hơn chúng ta có thể thêm giá trị ngưỡng vào hàm edge như sau: edge(Image, ‘filter name’, threshold).
CHÚ Ý: Bài viết mình dịch hơi vội nên có gì sai sót thì thông cảm và cmt góp ý ạ. Cảm ơn.
DOWN TOAN BO CODE VÀ HINH ANH.
CODE MATLAB
HINH ANH