Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

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, 0-1.
  • Tích chập im với bộ dò biên.
  • Vẽ các biên ngang với bản đồ màu seismic. Dùng vmin=-150vmax=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()
Chỉnh sửa và Chạy Mã