OpenCV

Chuyển Đổi Hệ Màu Trong OpenCV

Trong xử lý hình ảnh đôi lúc chúng ta cần đưa hình ảnh về những hệ màu phù hợp với từng thuật toán. Ví dụ như một số yêu cầu đầu vào phải là hệ xám sử dụng 8bit cho 1pixel hay nhưng thuật toán yêu cầu hệ màu RBG hay YUV, HSV hay BRGA, AGRG chẳng hạn. Thì lúc đó chúng ta phải xây dựng các hàm để chuyển đổi sáng các hệ màu đó. Thật may mắn trong OpenCV có hổ trợ cho chúng ta hàm có chức năng chuyên biệt để chuyển đổi các hệ màu mà bài viết hôm nay chúng ta sẽ cùng nhau tìm hiểu.

Giới thiệu

Trong xử lý hình ảnh đôi lúc chúng ta cần đưa hình ảnh về những hệ màu phù hợp với từng thuật toán. Ví dụ như một số yêu cầu đầu vào phải là hệ xám sử dụng 8bit cho 1pixel hay nhưng thuật toán yêu cầu hệ màu RBG hay YUV, HSV hay BRGA, AGRG chẳng hạn. Thì lúc đó chúng ta phải xây dựng các hàm để chuyển đổi sáng các hệ màu đó. Thật may mắn trong OpenCV có hổ trợ cho chúng ta hàm có chức năng chuyên biệt để chuyển đổi các hệ màu mà bài viết hôm nay chúng ta sẽ cùng nhau tìm hiểu.

Chuyển đổi các hệ màu trong OpenCV

Thư viện OpenCV là một thư viện chuyên xử lý hình ảnh vì vậy nó hổ trợ rất nhiều hệ màu như RGB, ARGB, BRGA, YUV, HSV… và nó cũng có cung cấp cho chúng ta hàm cv::cvtColor để thực hiển chuyển đổi giữa các hệ mày này.

hàm này có prototype như sau:

Với đối số thứ nhất là input đầu vào 8bit unsigned  (CV_8U) hoặc 16bit unsigned (CV_16U)

Đối số thứ hai là input đầu ra có cùng size và depth như input đầu vào.

Đối số thứ ba là code quy định sẽ convert từ mã màu nào sang mã màu nào và có cấu trúc như sau

CV_[MÃ MÀU NGUỒN]2[MÃ MÀU ĐÍCH]

Ví dụ CV_RGB2GRAY

Sẽ chuyển từ hệ RGB sang GRAY

Và dưới đây là tất cả các code (có 140 code) chúng ta có thể sử dụng để chuyển đối hệ màu trong OpenCV

Để sử dụng được hàm cv:cvtColor chúng ta phải include module imgproc của OpenCV

Và dưới đây là chương trình chuyển đổi ảnh nguồn RGB sang các hệ màu Gray, YUV, HSV.

Kết quả khi chạy chương trình trên

convert_color_space_opencv_ss_1

Vậy là qua hai bài hướng dẫn về cách sử dụng OpenCV chúng ta cũng được biết được cách đọc một hình ảnh từ file và hiển thị lên cửa sổ Windows và hôm nay chúng ta cũng được được biết cách chuyển đổi các hệ màu trong OpenCV. Bài tiếp theo chúng ta sẽ tìm hiểu cách lấy hình ảnh từ webcame của máy tính.

3 thoughts on “Chuyển Đổi Hệ Màu Trong OpenCV”

  1. Bạn ơi, cho mình hỏi tại sao mình phải chuyển hệ màu nhỉ. Ví dụ như trong nhận diện khuôn mặt lại phải chuyển sang hệ màu HSV
    Tks.

    1. Việc chuyển đối hệ màu có rất nhiều mục đích, mình ví dụ như chuyển 4 kênh màu ARGB về Gray nhằm giảm bớt kênh màu, dễ dàng cho việc tính toán hơn (áp dụng các bộ lọc, tìm biên ảnh, …)

  2. I see you don’t monetize your page, don’t waste
    your traffic, you can earn extra bucks every month because you’ve got hi quality content.
    If you want to know how to make extra bucks, search for: Boorfe’s
    tips best adsense alternative

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.