Matlab trong xử lý ảnh: Bộ lọc đạo hàm để phát hiện cạnh biên(p3)

Lu ROm

Administrator
Staff member
25 Tháng bảy 2014
481
119
43
31
One piece
vimach.net
2. Bộ lọc đạo hàm bậc hai.
- Bộ lọc phát hiện cạnh đạo hàm bậc nhất không thường được sử dụng như một công cụ để nâng cao hình ảnh. Thay vào đó, chúng ta chỉ sử dụng trong quá trình phát hiện cạnh như một bước trong quy trình phân đoạn ảnh. Một công cụ phổ biến hơn nhiều trong nâng cao hình ảnh là sử dụng một toán tử đạo hàm bậc hai: Laplacian.
a. Phát hiện cạnh biên bằng Laplacian
- Một toán tử đạo hàm bậc hai rất phổ biến là Laplacian:
upload_2016-7-2_9-56-47.png

- Đối với miền 3x3 , một trong hai dạng thường gặp (encounter) trong thực tế:
upload_2016-7-2_10-49-6.png

- Xấp xỉ số bao gồm các vùng lân cận chéo được cho bởi:
upload_2016-7-2_9-56-57.png

- Ví dụ dưới đây thực hiện với một kernel 3x3 như trong hình 4.11A. Chúng ta sẽ áp dụng hình ảnh cho toán tử này, chúng ta sẽ thấy đáp ứng được lớn nhất tại các điểm trong hình ảnh nơi gradient cục bộ thay đổi nhanh nhất. Tuy nhiên, phép Laplace là không thể phát hiện hướng cạnh. Đối với những lý do này, vai trò của phép Laplace trong sự phân đoạn bao gồm (1) sử dụng đặc tính chéo không của nó cho vị trí cạnh, (2) sử dụng nó cho các mục đích thiết lập một pixel là mặt tối hay sáng của một cạnh.
- Nếu chúng ta xoay kernel 45 độ và cộng với kernel gốc, chúng ta có thể xây dựng một bộ lọc bất biến bội của phép quay 45 độ.
upload_2016-7-2_9-56-32.png

- Hình 4.12 so sánh đáp ứng của bộ lọc đạo hàm bậc nhất là Sobel và bậc hai Laplacian.
upload_2016-7-2_10-1-45.png

- Chú ý cách toán tử Gradientuwsrddaoj hàm bậc nhất có xu hướng tạo 'cạnh dày', trong khi các bộ lọc Laplacian xu hướng tạo ra các cạnh tốt hơn để đáp ứng với sự thay đổi độ dốc gradient. Các toán tử Laplacian có thể được áp dụng trong Matlab như trong Ví dụ dưới đây.
*** CODE MATLAB
Mã:
I=rgb2gray(imread('peppers.png')); % Read in image (in greyscale)
k = fspecial('laplacian'); % create laplacian filter
IEl = imfilter(double(I),k,'symmetric'); % laplacian edges
subplot(1,2,1), imagesc(I); % Display image
title('anh xam');
subplot(1,2,2), imagesc(IEl); % Display image
title('anh loc laplacian');
colormap('gray');
upload_2016-7-2_10-8-41.png

b. Bộ tách biên Laplace của hàm Gauss (LoG):
-
Xét hàm Gauss:
upload_2016-7-2_10-14-56.png

- Trong đó r ^2= x^2 + y^2 và là ơ độ lệch chuẩn. Đây là hàm trơn, nếu nó chập với một ảnh, sẽ làm mờ ảnh. Độ mờ được xác định bởi giá trị độ lệch chuẩn ơ.
- Toán tử Laplace của hàm này (đạo hàm bậc 2 theo r):
upload_2016-7-2_10-18-32.png

- Vì đạo hàm bậc hai là toán tử tuyến tính, chập (lọc) với một ảnh bằng công thức trên giống như đầu tiên chập ảnh với hàm trơn và sau đó tính kết quả của toán tử Laplace. Chúng ta chập ảnh bằng công thức trên có 2 tác động: nó làm mịn ảnh (do đó giảm nhiễu) và nó tính toán tử Laplace, làm cong một ảnh biên kép. Định vị các biên sau đó tìm các điểm giao zero giữa các biên kép. Cú pháp gọi tổng quát là:
upload_2016-7-2_10-21-28.png

- Trong đó sigma là độ lệch chuẩn, giá trị mặc định của sigma là 2.
c. Bộ tách biên điểm giao zero:
- Thuộc tính zero-crossing của Laplacian (và loG) cũng là một phương pháp phát hiện cạnh biên: phương pháp zero-crossing.Chúng ta sử dụng một detector zero-crossing để xác định vị trí điểm ảnh mà tại đó giá trị của Laplacian đi qua không. Điều này xảy ra tại 'cạnh' trong hình ảnh nơi cường độ của hình ảnh thay đổi nhanh.Các đầu ra từ detector zero-crossing thường là một hình ảnh nhị phân với các đường dày single-pixel hiển thị vị trí của các điểm zero-crossing. Kết quả bị tác động mạnh bởi kích thước của Gaussian dùng cho bước làm mịn của toán tử này. Khi làm mịn tăng lên nó sẽ làm giảm đường nét zero-crossing.
*** CODE MATLAB
Mã:
I=rgb2gray(imread('peppers.png')); % Read in image (in greyscale)
k = fspecial('log', [10 10], 3.0); % create laplacian filter
IEzc = edge(I, 'zerocross', [], k); % zero crossing edges (auto thresholded)
subplot(1,2,1), imshow(I); % Display image
title('ANH XAM');
subplot(1,2,2), imshow(IEzc); % Display image
title('ANH loc zero crossing');
upload_2016-7-2_10-44-22.png


***DOWN TOAN BO CODE MATLAB VA HINH ANH:
CODE MATLAB
HINH ANH
 

Attachments

  • upload_2016-7-2_10-14-32.png
    upload_2016-7-2_10-14-32.png
    7.1 KB · Đọc: 12