icon-mess
Chat Zalo
(24/7)
zalo

Thuật toán xử lý ảnh trong python: Từ thuật toán đến công cụ

Xử lý hình ảnh là công nghệ cốt lõi trong thị giác máy tính và giúp phát triển nhiều ứng dụng thực tế như rô-bốt, ô tô tự lái, camera thông minh và nhận dạng đối tượng. Xử lý hình ảnh cho phép bạn chuyển đổi và chỉnh sửa hàng nghìn hình ảnh cùng lúc để trích xuất thông tin chi tiết và quan trọng. Bài viết này của Công Ty Quảng Cáo Marketing Online Limoseo sẽ đề cập đến Thuật toán xử lý ảnh trong python

Thuật toán xử lý ảnh trong python: Từ thuật toán đến công cụ

1. Thuật toán xử lý ảnh thông thường 

1.1 Xử lý hình ảnh hình thái học

Xử lý hình ảnh hình thái học nhận diện hình ảnh bằng Python, bao gồm các hoạt động phi tuyến tính ảnh hưởng đến hình dạng hoặc hình thái học của hình ảnh nhị phân. Thuật toán này loại bỏ các điểm nhiễu và làm mịn hình ảnh. Xử lý hình thái cũng có thể được mở rộng cho các hình ảnh thang độ xám. Điều này liên quan đến các hoạt động phi tuyến tính liên quan đến cấu trúc của các vị trí trong ảnh theo thứ tự pixel. Kỹ thuật này phân tích hình ảnh bằng cách sử dụng các yếu tố cấu trúc được đặt ở các vị trí khác nhau trong hình ảnh và so sánh chúng với các pixel lân cận tương ứng. Một phần tử cấu trúc là một ma trận nhỏ của 0 và 1.

Hai hoạt động cơ bản của xử lý hình thái là phép giãn và phép co.

  • Sự giãn nở thêm pixel vào ranh giới của các đối tượng trong ảnh
  • Thu nhỏ loại bỏ các pixel khỏi giới hạn của đối tượng. 

Số pixel bị xóa hoặc thêm vào từ ảnh gốc phụ thuộc vào kích thước của phần tử cấu trúc. 

1.2 Xử lý ảnh Gaussian của Thuật toán xử lý ảnh trong python

Gaussian blur là kết quả của việc làm mờ hình ảnh bằng hàm Gaussian.

Kỹ thuật này được sử dụng để giảm độ nhiễu của chi tiết trong hình ảnh. Hiệu ứng hình ảnh của kỹ thuật Gaussian tương tự như việc nhìn vào một hình ảnh qua một màn hình mờ. Gaussian được sử dụng trong thị giác máy tính để nâng cao hình ảnh ở các tỷ lệ khác nhau. Gaussian cũng giống như một kỹ thuật nâng cao dữ liệu để học sâu.

Trên thực tế, chúng ta có thể sử dụng thuộc tính có thể tách rời của Gaussian blur để chia quá trình thành hai phần. Lần đầu tiên, bạn chỉ có thể làm mờ hình ảnh ở định dạng ngang hoặc dọc bằng kernel đơn hướng (kernel hệ điều hành). Lần thứ hai, sử dụng cùng một kernel có thể sử dụng được và làm mờ theo hướng ngược lại. Kết quả là một kernel hai chiều. Đây là một ví dụ trực quan để hiểu tác dụng của bộ lọc Gaussian đối với một hình ảnh.

Như bạn có thể thấy, bộ lọc Gaussian là bộ lọc thông thấp. Đó là, nó làm giảm tần số cao. Thường được sử dụng trong phát hiện cạnh.

1.3 Biến đổi Fourier trong xử lý ảnh

Biến đổi Fourier chia ảnh thành các thành phần sin và cosin. Nó có nhiều công dụng như tái tạo hình ảnh, nén hình ảnh và lọc hình ảnh. Một sóng hình sin bao gồm ba yếu tố:

  • Độ lớn – liên quan đến độ tương phản
  • Tần số không gian – tỷ lệ thuận với độ sáng
  • Pha – liên quan đến thông tin màu sắc
Thuật toán xử lý ảnh thông thường

2. Công cụ xử lý hình ảnh

2.1 OpenCV

OpenCV là viết tắt của Open Source Computer Vision Library., là một công cụ xử lý hình ảnh của Thuật toán xử lý ảnh trong python. Thư viện này chứa hơn 2000 thuật toán được tối ưu hóa hữu ích cho thị giác máy tính và máy học. Có một số cách sử dụng OpenCV để xử lý ảnh.

  • Chuyển đổi một hình ảnh từ không gian màu này sang không gian màu khác: Giữa BGR và HSV, BGR và Grayscale,…
  • Ngưỡng hình ảnh như ngưỡng đơn giản, ngưỡng thích nghi.
  • Làm mịn hình ảnh, chẳng hạn như áp dụng các bộ lọc tùy chỉnh cho hình ảnh hoặc làm mờ hình ảnh.
  • Thực hiện các phép toán hình thái học trên hình ảnh. 
  • Xây dựng một kim tự tháp. 
  • Trích xuất nền của hình ảnh bằng thuật toán GrabCut. 
  • Phân đoạn ảnh với thuật toán watershed. 

2.2 Hình ảnh Scikit

Scikit là một thư viện tiền xử lý hình ảnh mã nguồn mở. Sử dụng máy học với các chức năng tích hợp để thực hiện các thao tác phức tạp trên hình ảnh chỉ với một vài chức năng.

Scikit xử lý ảnh bằng python, hoạt động với các mảng có nhiều mảng và là một thư viện khá đơn giản ngay cả đối với những người mới bắt đầu sử dụng Python

  • Để triển khai thao tác ngưỡng, hãy sử dụng phương thức try_all_threshold() trên hình ảnh của bạn. Sử dụng bảy thuật toán ngưỡng toàn cầu. 
  • Để phát hiện cạnh, hãy sử dụng phương thức sobel() trong mô-đun bộ lọc. Phương pháp này yêu cầu đầu vào là hình ảnh thang độ xám 2D, vì vậy bạn cần chuyển đổi hình ảnh sang thang độ xám. 
  • Để thực hiện làm mịn Gaussian, hãy sử dụng phương thức gaussian() trong mô-đun bộ lọc. Áp dụng thêm cân bằng biểu đồ bằng mô-đun phơi sáng.
  • Để áp dụng cân bằng biểu đồ thông thường cho ảnh gốc, hãy sử dụng phương thức equalize_hist()
  • Để áp dụng cân bằng thích ứng, hãy sử dụng phương thức equalize_adapthist(). 
  • Để xoay hình ảnh, hãy sử dụng hàm rotate() trong mô-đun biến đổi. 
  • Để chia tỷ lệ hình ảnh, hãy sử dụng hàm rescale() của mô-đun biến đổi. 
  • Để áp dụng các phép toán hình thái học, hãy sử dụng các hàm binary_e wear() và binary_dilation() trong mô-đun hình thái học. 
Công cụ xử lý hình ảnh

2.3 PILLOW/PIL 

PIL là viết tắt của Thư viện hình ảnh Python. Đây là một trong những thư viện mạnh hỗ trợ đa dạng các định dạng ảnh như PPM, JPEG, TIFF, GIF, PNG, BMP.

Nó giúp thực hiện một số thao tác trên hình ảnh như xoay, thay đổi kích thước, cắt, thang độ xám,… 

  • Để tải hình ảnh, hãy sử dụng phương thức open(). 
  • Để hiển thị hình ảnh, hãy sử dụng phương thức show(). 
  • Để biết định dạng tệp, hãy sử dụng thuộc tính định dạng
  • Để biết kích thước của hình ảnh, hãy sử dụng thuộc tính size. Sử dụng định dạng pixel cho thuộc tính chế độ. 
  • Để lưu tệp ảnh sau khi xử lý, hãy sử dụng phương thức save(). Pillow lưu file ảnh với định dạng PNG. 
  • Để thay đổi kích thước hình ảnh, hãy sử dụng phương thức resize(), phương thức này nhận hai đối số, chiều rộng và chiều cao. 
  • Để cắt hình ảnh, hãy sử dụng phương thức crop(). Phương pháp này lấy đối số là một tập hợp các hộp xác định vị trí và kích thước của vùng bị cắt. 
  • Để xoay một hình ảnh, hãy sử dụng phương thức rotate(). Phương thức này lấy một đối số nguyên hoặc thực đại diện cho mức độ quay. 
  • Để lật hình ảnh, hãy sử dụng phương thức transform() chấp nhận một trong các đối số sau: Image.FLIP_LEFT_RIGHT, Image.FLIP_TOP_BOTTOM, Image.ROTATE_90, Image.ROTATE_180, Image.ROTATE_270.

3. Câu hỏi thường gặp

Thuật toán xử lý ảnh là gì và tại sao nó quan trọng trong Python?

Thuật toán xử lý ảnh là một tập hợp các phương pháp và kỹ thuật được áp dụng để thực hiện các thao tác trên hình ảnh, như lọc ảnh, phát hiện đối tượng, nhận dạng khuôn mặt, và nhiều tác vụ khác. Trong Python, thuật toán xử lý ảnh rất quan trọng vì nó cho phép chúng ta thực hiện các phân tích và biến đổi hình ảnh một cách hiệu quả.

Có những thuật toán xử lý ảnh nổi tiếng nào trong Python?

Một số thuật toán xử lý ảnh nổi tiếng trong Python gồm thuật toán Canny. Thuật toán Hough. Thuật toán Watershed. Thuật toán SIFT (Scale-Invariant Feature Transform).

Làm thế nào để thực hiện xử lý ảnh trong Python?

Những bước cơ bản xử lý ảnh trong Python bao gồm Import thư viện phù hợp: Sử dụng câu lệnh import để tải các thư viện như cv2 (OpenCV), skimage (scikit-image) hoặc PIL (Python Imaging Library). Đọc và hiển thị ảnh.

Như vậy, Công Ty Quảng Cáo Marketing Online Limoseo đã giới thiệu tới các bạn về Thuật toán xử lý ảnh trong python bao gồm các thuật toán xử lý ảnh thông thường và một số công cụ xử lý hình ảnh thông dụng nhất.

🍀🍀 Quý đọc giả nếu có quan tâm đến một số dịch vụ quảng cáo hỗ trợ cho việc phát triển kênh Shopee của mình tại Limoseo vui lòng tham khảo tại đây:

👉 Dịch vụ tăng follow Shopee

👉 Dịch vụ tăng đánh giá Shopee

👉 Dịch vụ tăng lượt mua Shopee

👉 Dịch vụ đăng ký Shopee Mall

Limoseo - Công ty Dịch vụ SEO & Thiết kế Website
Limoseo – Công ty Dịch vụ SEO & Thiết kế Website
Đánh giá