Rate this post

Khái niệm cơ bản của ngưỡng là đơn giản hóa dữ liệu trực quan hơn để phân tích. Khi chúng ta chuyển đổi hình ảnh thành thang màu xám, chúng ta phải nhớ rằng thang độ xám vẫn có ít nhất 255 giá trị. Ngưỡng được chuyển đổi mọi thứ thành màu trắng hoặc đen, dựa trên giá trị ngưỡng. 

Các bài viết liên quan:

Threshold trong xử lý ảnh

Trong xử lý ảnh, Threshold là một phương pháp được sử dụng để chuyển đổi ảnh từ dạng liên tục sang dạng nhị phân, nhằm phân loại các pixel thành hai nhóm dựa trên một giá trị ngưỡng. Các pixel có giá trị nhỏ hơn hoặc bằng giá trị ngưỡng sẽ được gán một giá trị nhất định (thường là 0 hoặc 255), trong khi các pixel có giá trị lớn hơn giá trị ngưỡng sẽ được gán một giá trị khác.

Xem thêm Các kỹ thuật Computer Vision trong OpenCV

Phương pháp Threshold được sử dụng để thực hiện các tác vụ như:

  1. Chuyển đổi ảnh sang ảnh nhị phân: Dùng để tạo ra ảnh chỉ có hai mức xám là trắng và đen, tách biệt các vùng hoặc đối tượng trong ảnh.
  2. Phân đoạn ảnh: Giúp phân chia ảnh thành các vùng có tính chất tương tự như màu sắc, độ sáng, hoặc đặc trưng khác.
  3. Phát hiện biên cạnh: Dùng để phát hiện và tách biệt các biên cạnh hoặc đường viền trong ảnh.
  4. Nhận dạng và phân loại đối tượng: Threshold có thể được sử dụng để phân loại đối tượng dựa trên đặc trưng của chúng.

OpenCV là một thư viện phổ biến được sử dụng trong xử lý ảnh, cung cấp các hàm và công cụ để thực hiện phương pháp Threshold trên ảnh. Các hàm như cv2.threshold() và cv2.adaptiveThreshold() trong OpenCV cung cấp các phương pháp Threshold cơ bản và Threshold thích ứng để xử lý ảnh.

Giả sử chúng ta muốn ngưỡng là 125 (trong số 255), sau đó mọi thứ dưới 125 sẽ được chuyển đổi thành 0 hoặc đen và mọi thứ trên 125 sẽ được chuyển thành 255 hoặc trắng. Cú pháp như sau:

Thông số-

src: Hình ảnh nguồn, nó phải là hình ảnh thang độ xám.

  • thresh: Nó được sử dụng để phân loại giá trị pixel.
  • maxVal: Nó đại diện cho giá trị được cung cấp nếu giá trị ngưỡng pixel.

OpenCV cung cấp các kiểu ngưỡng khác nhau được sử dụng làm tham số thứ tư của hàm. Đây là những điều sau đây:

  • cv2.THRESH_BINARY
  • cv2.THRESH_BINARY_INV
  • cv2.THRESH_TRUNC
  • cv2.THRESH_TOZERO
  • cv2.THRESH_TOZERO_INV

Hãy lấy một hình ảnh đầu vào mẫu

Chúng tôi đã lấy hình ảnh trên làm đầu vào. Chúng tôi mô tả cách ngưỡng thực sự hoạt động. Hình ảnh trên hơi mờ và hơi khó đọc. Một số phần đủ sáng để đọc, trong khi phần khác cần tập trung hơn để đọc đúng cách.

Xem thêm Các tính năng của OpenCV mà bạn không thể bỏ qua vào năm 2022

Hãy xem xét ví dụ sau:

Đầu ra

Xem thêm OpenCV template Matching

Áp dụng Threshold trong OpenCV

Để áp dụng phương pháp Threshold trong OpenCV, bạn có thể sử dụng các hàm như cv2.threshold() hoặc cv2.adaptiveThreshold(). Dưới đây là một ví dụ về cách sử dụng hai hàm này:

  1. Hàm cv2.threshold():
import cv2

# Đọc ảnh đầu vào
image = cv2.imread('input_image.jpg', 0)  # Đọc ảnh dưới dạng ảnh grayscale

# Áp dụng Threshold
_, thresholded_image = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)

# Hiển thị ảnh kết quả
cv2.imshow('Thresholded Image', thresholded_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Trong ví dụ này, chúng ta đọc một ảnh grayscale và áp dụng phương pháp Threshold nhị phân. Giá trị ngưỡng là 127, tức là tất cả các pixel có giá trị nhỏ hơn hoặc bằng 127 sẽ được gán giá trị 0 (đen), và các pixel có giá trị lớn hơn 127 sẽ được gán giá trị 255 (trắng).

  1. Hàm cv2.adaptiveThreshold():
import cv2

# Đọc ảnh đầu vào
image = cv2.imread('input_image.jpg', 0)  # Đọc ảnh dưới dạng ảnh grayscale

# Áp dụng Threshold thích ứng
adaptive_thresholded_image = cv2.adaptiveThreshold(image, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 2)

# Hiển thị ảnh kết quả
cv2.imshow('Adaptive Thresholded Image', adaptive_thresholded_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Trong ví dụ này, chúng ta sử dụng phương pháp Threshold thích ứng, cụ thể là phương pháp trung bình (cv2.ADAPTIVE_THRESH_MEAN_C). Phương pháp này tính toán ngưỡng cục bộ dựa trên kích thước cửa sổ (11×11 trong trường hợp này) và hằng số trừ đi (2 trong trường hợp này). Kết quả là các vùng sẽ được phân loại thành đen hoặc trắng dựa trên ngưỡng cục bộ được tính toán.

Lưu ý rằng việc áp dụng Threshold có thể khác nhau tùy thuộc vào ảnh đầu vào và yêu cầu xử lý cụ thể của bạn. Bạn có thể tham khảo thêm tài liệu OpenCV và thử nghiệm với các tham số và phương pháp khác nhau để tìm ra kết quả phù hợp với yêu cầu của mình.

Xem thêm 9 function quan trọng trong OpenCV trong computer vision

Ứng dụng của Threshold trong xử lý ảnh

Phương pháp Threshold trong xử lý ảnh có nhiều ứng dụng quan trọng. Dưới đây là một số ví dụ về các ứng dụng của Threshold trong xử lý ảnh:

  1. Phân đoạn ảnh: Threshold được sử dụng để phân chia ảnh thành các vùng có tính chất tương tự. Ví dụ, bạn có thể sử dụng Threshold để phân loại các vùng trong ảnh dựa trên màu sắc, độ sáng, hoặc đặc trưng khác.
  2. Phát hiện biên cạnh: Threshold có thể được sử dụng để phát hiện và tách biệt các biên cạnh hoặc đường viền trong ảnh. Các pixel có giá trị nhỏ hơn hoặc bằng ngưỡng được coi là nền và các pixel có giá trị lớn hơn ngưỡng được coi là biên cạnh.
  3. Nhận dạng và phân loại đối tượng: Threshold có thể được sử dụng để nhận dạng và phân loại các đối tượng trong ảnh. Bằng cách thiết lập ngưỡng phù hợp, bạn có thể gán nhãn cho các vùng tương ứng với các đối tượng trong ảnh.
  4. Tách nền và đối tượng: Threshold có thể được sử dụng để tách biệt nền và đối tượng trong ảnh. Bằng cách thiết lập ngưỡng phù hợp, bạn có thể tạo ra một ảnh chỉ chứa đối tượng trong ảnh hoặc chỉ chứa nền.
  5. Phân loại dữ liệu: Threshold cũng có thể được sử dụng để phân loại dữ liệu dựa trên các giá trị hoặc đặc trưng của chúng. Ví dụ, trong phân loại ảnh y tế, Threshold có thể được sử dụng để phân loại các dạng bệnh hoặc tình trạng khác nhau dựa trên các đặc trưng của ảnh.

Đây chỉ là một số ví dụ về các ứng dụng của Threshold trong xử lý ảnh. Tùy thuộc vào bài toán cụ thể và yêu cầu của bạn, có thể có nhiều ứng dụng khác của Threshold trong xử lý ảnh.

Xem thêm Image carousels là gì?

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now