Phát hiện biên (1)
Bộ lọc cũng có thể dùng như các "bộ dò" (detector). Nếu một phần của ảnh khớp với mẫu trọng số, giá trị trả về sẽ rất cao (hoặc rất thấp).
Với phát hiện biên, mẫu đó là sự thay đổi cường độ dọc theo một mặt phẳng. Một bộ lọc phát hiện biên ngang có thể như sau:
weights = [[+1, +1, +1],
[ 0, 0, 0],
[-1, -1, -1]]
Trong bài này, hãy tạo một bộ dò biên theo phương dọc và xem nó hoạt động thế nào trên ảnh X-quang bàn tay (im).
Bài tập này là một phần của khóa học
Phân tích ảnh Y sinh học bằng Python
Hướng dẫn bài tập
- Tạo một mảng 3x3 các trọng số bộ lọc để phát hiện khi cường độ thay đổi từ trái sang phải. Chỉ dùng các giá trị
1,0và-1. - Tích chập
imvới bộ dò biên. - Vẽ các biên ngang với bản đồ màu
seismic. Dùngvmin=-150vàvmax=150để điều chỉnh thang màu của bạn. - Thêm thanh màu (colorbar) và hiển thị kết quả.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Set weights to detect vertical edges
weights = [[____], [____], [____]]
# Convolve "im" with filter weights
edges = ____
# Draw the image in color
plt.imshow(____, ____, vmin=-150, vmax=150)
____
format_and_render_plot()