Bài toán tách biên ảnh

Thảo luận trong 'XỬ LÝ ẢNH' bắt đầu bởi Lu ROm, 29 Tháng sáu 2016.

Chia sẻ trang này

Lượt xem: 9,003

  1. Lu ROm

    By:Lu ROmin: 29 Tháng sáu 2016
    Administrator Staff Member

    Tham gia ngày:
    25 Tháng bảy 2014
    Bài viết:
    481
    Đã được thích:
    118
    1. Một số khái niệm
    · Điểm biên: Một điểm được coi là điểm biên nếu có sự thay đổi nhanh hoặc đột ngột về mức xám.
    · Đường biên: Là tập hợp các điểm biên liên tiếp tạo thành đường biên hay đường bao.Ý nghĩa của đường biên trong xử lý:
    + Đường biên là một loại đặc trưng cục bộ tiêu biểu trong phân tích, nhận dạng ảnh.
    + Người ta sử dụng biên làm phân cách các vùng xám (màu) cách biệt. Ngược lại, người ta cũng sử dụng các vùng ảnh để tìm đường phân cách.
    · Các loại đường biên: có 3 loại đường biên chính là đường biên lý tưởng, đường biên bậc thang và đường biên thực (tương ứng từ trái qua phải như hình vẽ )
    upload_2016-6-29_10-31-40.png

    + Đường biên lý tưởng được định nghĩa là sự thay đổi giá trị cấp xám tại một vị trí xác định. Nếu sự thay sự thay đổi cấp xám giữa các vùng trong ảnh càng lớn thì đường biên càng dễ nhận ra. Trong trường hợp này sự thay đổi lại diễn ra tại một điểm nên đường biên có độ rộng là một điểm ảnh và vị trí của đường biên chính là vị trí thay đổi cấp xám.
    + Đường biên bậc thang: là đường biên xuất hiện khi có sự thay đổi cấp xám trải rộng qua nhiều điểm ảnh. Vị trí của đường biên được xem như vị trí chính giữa của đường nối giữa cấp xám thấp và cấp xám cao. Tuy nhiên đây chỉ là đường thẳng trong toán học, từ khi ảnh được kỹ thuật số hoá thì đường đó không còn là đường thẳng mà thành những đường không trơn.
    + Đường biên thực: là đường biên xuất hiện khi có sự thay đổi cấp xám tại nhiều điểm ảnh nhưng không trơn.
    2. Phương pháp Gradient tách biên ảnh
    - Tương tự như các phép toán làm trơn ảnh, khả năng lấy đạo hàm theo tọa độ các điểm ảnh là hết sức quan trọng. Bài toán cơ bản ở đây là nếu ta dùng định nghĩa toán học về đạo hàm thì chúng ta không thể lấy đạo hàm các điểm ảnh, do một ảnh số hóa không phải là một hàm liên tục a[x, y] theo các biến tọa độ mà chỉ là một hàm rời rạc I [m, n] với các biến tọa độ nguyên. Do đó những thuật toán mà chúng ta trình bày ở đây chỉ có thể được xem là các xấp xỉ cho đạo hàm thật sự theo tọa độ của ảnh liên tục ban đầu bằng cách dùng phương pháp tích chập.
    - Phương pháp Gradient là phương pháp dò biên cục bộ (phương pháp tìm biên trực tiếp) dựa theo đạo hàm cực đại bậc nhất. Gradient là một vectơ có các thành phần biểu thì tốc độ thay đổi giá trị của điểm ảnh theo hai hướng x và y.
    upload_2016-6-29_10-33-53.png
    3. Bộ lọc Sobel
    - Bộ lọc Sobel được sử dụng nhiều trong việc tách biên của một bức ảnh. Bộ lọc này sử dụng 2 mặt nạ theo phương ngang và dọc để tách biên của bức ảnh.Bộ tách biên Sobel sử dụng các mặt nạ trong hình dưới để xấp xỉ đạo hàm bậc nhất Gx và Gy . Nói cách khác, gradient tại điểm tâm trong một lân cận được tính theo bộ tách Sobel:
    upload_2016-6-29_10-37-25.png
    upload_2016-6-29_10-36-2.png
    - Khi đó, ta nói rằng vị trí (x,y) là pixel biên nếu tại vị trí đó, trong đó là một ngưỡng được chỉ định. Mặt lạ của bộ lọc Sobel :
    upload_2016-6-29_10-38-8.png
    FiltersStyleSobelEdgeEffect.jpg
    *** Thuật toán trong MATLAB.
    Mã:
    A=imread('peppers.png');
    B=rgb2gray(A);
    
    C=double(B);
    
    
    for i=1:size(C,1)-2
        for j=1:size(C,2)-2
            %Sobel mask for x-direction:
            Gx=((2*C(i+2,j+1)+C(i+2,j)+C(i+2,j+2))-(2*C(i,j+1)+C(i,j)+C(i,j+2)));
            %Sobel mask for y-direction:
            Gy=((2*C(i+1,j+2)+C(i,j+2)+C(i+2,j+2))-(2*C(i+1,j)+C(i,j)+C(i+2,j)));
         
            %The gradient of the image
            %B(i,j)=abs(Gx)+abs(Gy);
            B(i,j)=sqrt(Gx.^2+Gy.^2);
         
        end
    end
    figure,imshow(B); title('Sobel gradient');
     
    TSM_OutDoor thích bài này.