Nhà điều hành Sobel
Toán tử sobel rất giống với toán tử Prewitt. Nó cũng là một mặt nạ phái sinh và được sử dụng để phát hiện cạnh. Giống như toán tử Prewitt, toán tử sobel cũng được sử dụng để phát hiện hai loại cạnh trong một hình ảnh:
- Hướng dọc
- Hướng ngang
Sự khác biệt với Nhà điều hành Prewitt
Sự khác biệt chính là trong toán tử sobel, các hệ số của mặt nạ không cố định và chúng có thể được điều chỉnh theo yêu cầu của chúng tôi trừ khi chúng không vi phạm bất kỳ tính chất nào của mặt nạ phái sinh.
Sau đây là Mặt nạ dọc của Toán tử Sobel:
-1 | 0 | 1 |
-2 | 0 | 2 |
-1 | 0 | 1 |
Mặt nạ này hoạt động giống hệt như mặt nạ dọc của toán tử Prewitt. Chỉ có một sự khác biệt là nó có các giá trị “2” và “-2” ở giữa cột đầu tiên và cột thứ ba. Khi được áp dụng trên một hình ảnh, mặt nạ này sẽ làm nổi bật các cạnh dọc.
Làm thế nào nó hoạt động
Khi chúng tôi áp dụng mặt nạ này trên hình ảnh, nó sẽ nổi bật các cạnh dọc. Nó đơn giản hoạt động giống như đơn hàng đầu tiên lấy và tính toán sự khác biệt của cường độ pixel trong một vùng cạnh.
Vì cột trung tâm bằng 0 nên nó không bao gồm các giá trị ban đầu của hình ảnh mà nó tính toán sự khác biệt của giá trị pixel bên phải và bên trái xung quanh cạnh đó. Ngoài ra, giá trị trung tâm của cả cột thứ nhất và cột thứ ba lần lượt là 2 và -2.
Điều này cung cấp thêm tuổi trọng số cho các giá trị pixel xung quanh vùng cạnh. Điều này làm tăng cường độ cạnh và nó được nâng cao so với hình ảnh gốc.
Sau đây là Mặt nạ ngang của Toán tử Sobel
-1 | -2 | -1 |
0 | 0 | 0 |
1 | 2 | 1 |
Mặt nạ trên sẽ tìm thấy các cạnh theo hướng ngang và đó là vì cột số không đó là theo hướng ngang. Khi bạn chuyển mặt nạ này vào một hình ảnh, nó sẽ làm nổi bật các cạnh ngang trong hình ảnh. Sự khác biệt duy nhất giữa nó là nó có 2 và -2 là phần tử trung tâm của hàng thứ nhất và thứ ba.
Làm thế nào nó hoạt động
Mặt nạ này sẽ làm nổi bật các cạnh ngang trong hình ảnh. Nó cũng hoạt động trên nguyên tắc của mặt nạ trên và tính toán sự khác biệt giữa các cường độ pixel của một cạnh cụ thể. Vì hàng trung tâm của mặt nạ bao gồm các số không nên nó không bao gồm các giá trị ban đầu của cạnh trong hình ảnh mà nó tính toán sự khác biệt của cường độ pixel trên và dưới của cạnh cụ thể. Do đó làm tăng sự thay đổi đột ngột của cường độ và làm cho cạnh rõ hơn.
Bây giờ là lúc để xem những mặt nạ này hoạt động:
Hình ảnh mẫu
Sau đây là một hình ảnh mẫu mà chúng tôi sẽ áp dụng hai mặt nạ trên cùng một lúc.
Sau khi áp dụng Mặt nạ dọc
Sau khi áp dụng mặt nạ dọc trên hình ảnh mẫu trên, sẽ thu được hình ảnh sau.
Sau khi áp dụng Mặt nạ ngang
Sau khi đắp mặt nạ ngang trên hình ảnh mẫu trên, sẽ có được hình ảnh sau
So sánh
Như bạn có thể thấy rằng trong hình đầu tiên mà chúng tôi áp dụng mặt nạ dọc, tất cả các cạnh dọc đều hiển thị hơn hình ảnh ban đầu. Tương tự trong hình thứ hai, chúng tôi đã áp dụng mặt nạ ngang và kết quả là tất cả các cạnh ngang đều có thể nhìn thấy.
Vì vậy, theo cách này, bạn có thể thấy rằng chúng tôi có thể phát hiện cả các cạnh ngang và dọc từ một hình ảnh. Ngoài ra, nếu bạn so sánh kết quả của toán tử sobel với toán tử Prewitt, bạn sẽ thấy rằng toán tử sobel tìm thấy nhiều cạnh hơn hoặc làm cho các cạnh hiển thị hơn so với Toán tử Prewitt.
Điều này là do trong toán tử sobel, chúng tôi đã phân bổ nhiều trọng lượng hơn cho cường độ pixel xung quanh các cạnh.
Đắp mặt nạ nhiều cân hơn
Bây giờ chúng ta cũng có thể thấy rằng nếu chúng ta đặt càng nhiều trọng lượng vào mặt nạ, thì nó sẽ càng có nhiều cạnh hơn. Cũng như đã đề cập ở phần đầu của hướng dẫn rằng không có hệ số cố định trong toán tử sobel, vì vậy đây là một toán tử có trọng số khác
-1 | 0 | 1 |
-5 | 0 | 5 |
-1 | 0 | 1 |
Nếu bạn có thể so sánh kết quả của mặt nạ này với mặt nạ dọc Prewitt, rõ ràng là mặt nạ này sẽ tạo ra nhiều góc cạnh hơn so với mặt nạ Prewitt một chỉ vì chúng ta đã phân bổ nhiều trọng lượng hơn trong mặt nạ.