Hướng dẫn how do i convert rgb to grayscale in python opencv? - làm cách nào để chuyển đổi rgb sang thang độ xám trong python opencv?

Trong hướng dẫn này, chúng tôi sẽ kiểm tra cách đọc hình ảnh và chuyển đổi nó sang tỷ lệ màu xám, sử dụng OpenCV và Python.

Giới thiệu

Trong hướng dẫn này, chúng tôi sẽ kiểm tra cách đọc hình ảnh và chuyển đổi nó sang tỷ lệ màu xám, sử dụng OpenCV và Python.

Nếu bạn chưa cài đặt OpenCV, bạn có thể kiểm tra tại đây & nbsp; cách thực hiện. Bạn cũng cần cài đặt Numpy, có thể được thực hiện với PIP, Trình quản lý gói Python, bằng cách gửi lệnh sau trên dòng lệnh:

Mật mã

Để bắt đầu, chúng tôi cần nhập mô -đun CV2, điều này sẽ có sẵn các chức năng cần thiết để đọc hình ảnh gốc và chuyển đổi nó sang tỷ lệ màu xám.cv2 module, which will make available the functionalities needed to read the original image and to convert it to gray scale.

Để đọc hình ảnh gốc, chỉ cần gọi chức năng IMREAD của mô -đun CV2, chuyển khi nhập đường dẫn vào hình ảnh, dưới dạng chuỗi.imread function of the cv2 module, passing as input the path to the image, as a string.

Để đơn giản, chúng tôi giả sử tệp tồn tại và mọi thứ đều tải tốt, vì vậy chúng tôi sẽ không thực hiện bất kỳ kiểm tra lỗi nào. Tuy nhiên, đối với một mã mạnh mẽ, bạn nên xử lý các loại tình huống này.

Như lưu ý bổ sung, điều này sẽ rất quan trọng đối với tỷ lệ chuyển đổi sang màu xám, hàm imread & nbsp; sẽ có các kênh được lưu trữ trong BGR (xanh, xanh lá cây và đỏ) & nbsp; theo mặc định [1].imread function will have the channels stored in BGR (Blue, Green and Red) order by default [1].

image = cv2.imread('C:/Users/N/Desktop/Test.jpg')

Tiếp theo, chúng ta cần chuyển đổi hình ảnh thành quy mô màu xám. Để làm điều đó, chúng ta cần gọi chức năng CVTColor & NBSP; cho phép chuyển đổi hình ảnh từ không gian màu sang không gian khác.

Là đầu vào đầu tiên, chức năng này nhận được hình ảnh gốc. Là đầu vào thứ hai, nó nhận được mã chuyển đổi không gian màu. Vì chúng tôi muốn chuyển đổi hình ảnh gốc của mình từ không gian màu & nbsp; BGR thành màu xám, chúng tôi sử dụng mã & nbsp; color_bgr2gray.BGR color space to gray, we use the code COLOR_BGR2GRAY.

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

Bây giờ, để hiển thị hình ảnh, chúng ta chỉ cần gọi hàm imshow của mô -đun CV2. Hàm này nhận được đầu tiên là nhập một chuỗi có tên để gán cho cửa sổ và như đối số thứ hai, hình ảnh sẽ hiển thị.imshow function of the cv2 module. This function receives as first input a string with the name to assign to the window, and as second argument the image to show.

Chúng tôi sẽ hiển thị cả hai hình ảnh để chúng tôi có thể so sánh hình ảnh được chuyển đổi với hình ảnh gốc.

cv2.imshow('Original image',image)
cv2.imshow('Gray image', gray)

Cuối cùng, chúng tôi sẽ gọi chức năng Waitkey & NBSP; sẽ chờ đợi một sự kiện bàn phím. Hàm này nhận được là đầu vào một độ trễ, được chỉ định tính bằng mili giây. Tuy nhiên, nếu chúng ta vượt qua giá trị 0, thì nó sẽ chờ & nbsp; vô thời hạn cho đến khi xảy ra sự kiện quan trọng.waitKey function, which will wait for a keyboard event. This function receives as input a delay, specified in milliseconds. Nonetheless, if we pass the value 0, then it will wait indefinitely until a key event occurs.

Cuối cùng, một khi người dùng nhấn phím, chúng tôi gọi chức năng & nbsp; friveLallWindows, sẽ phá hủy các cửa sổ được tạo trước đó.destroyAllWindows function, which will destroy the previously created windows.

cv2.waitKey(0)
cv2.destroyAllWindows()

Mã cuối cùng có thể được nhìn thấy dưới đây.

import cv2
 
image = cv2.imread('C:/Users/N/Desktop/Test.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
 
cv2.imshow('Original image',image)
cv2.imshow('Gray image', gray)
 
cv2.waitKey(0)
cv2.destroyAllWindows()

Kiểm tra mã

Để kiểm tra mã, chỉ cần chạy chương trình trước đó về môi trường Python mà bạn chọn. Don Tiết quên chuyển đến hàm Imread đường dẫn chính xác đến hình ảnh bạn muốn kiểm tra. Bạn sẽ nhận được một đầu ra tương tự như Hình 1, hiển thị hình ảnh gốc và hình ảnh cuối cùng, được chuyển đổi sang tỷ lệ màu xám.imread function the correct path to the image you want to test. You should get an output similar to figure 1, which shows the original image and the final one, converted to gray scale.

Hướng dẫn how do i convert rgb to grayscale in python opencv? - làm cách nào để chuyển đổi rgb sang thang độ xám trong python opencv?
Hình 1 - Hình ảnh gốc so với hình ảnh chuyển đổi tỷ lệ màu xám. – Original image vs gray scale converted image.

Bài viết liên quan

  • Python OpenCV: Nhận video webcam
  • Python OpenCV: Chuyển đổi video webcam sang quy mô màu xám
  • Python OpenCV: Lưu hình ảnh vào hệ thống tệp
  • Python Opencv: Phát hiện khuôn mặt
  • Python Opencv: Vẽ vòng tròn trong hình ảnh

Người giới thiệu

[1] https://docs.opencv.org/3.0-beta/modules/imgcodecs/doc/reading_and_writing_images.html#imread

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc is the process of converting an image from other color spaces e.g. RGB, CMYK, HSV, etc. to shades of gray. It varies between complete black and complete white.

    Bàn luận

    • Giảm kích thước: Ví dụ, trong hình ảnh RGB có ba kênh màu và ba chiều trong khi hình ảnh thang độ xám là đơn. For example, In RGB images there are three color channels and three dimensions while grayscale images are single-dimensional.
    • Giảm độ phức tạp của mô hình: Xem xét đào tạo các bài báo thần kinh trên hình ảnh RGB của pixel 10x10x3. Lớp đầu vào sẽ có 300 nút đầu vào. Mặt khác, cùng một mạng thần kinh sẽ chỉ cần 100 nút đầu vào cho hình ảnh thang độ xám. Consider training neural articles on RGB images of 10x10x3 pixels. The input layer will have 300 input nodes. On the other hand, the same neural network will need only 100 input nodes for grayscale images.
    • Đối với các thuật toán khác hoạt động: Nhiều thuật toán được tùy chỉnh chỉ hoạt động trên hình ảnh thang độ xám, ví dụ: Chức năng phát hiện cạnh Canny được thực hiện sẵn trong thư viện OpenCV chỉ hoạt động trên hình ảnh thang độ xám. Many algorithms are customized to work only on grayscale images e.g. Canny edge detection function pre-implemented in the OpenCV library works on Grayscale images only.

    Hãy cùng tìm hiểu các phương pháp xử lý hình ảnh khác nhau để chuyển đổi hình ảnh màu thành hình ảnh thang độ xám.

    Phương pháp 1: Sử dụng hàm cv2.cvtcolor ()

    Nhập opencv và đọc hình ảnh gốc bằng iMread () hơn là chuyển đổi sang độ xám bằng hàm cv2.cvtcolor (). Hàm DestallAllWindows () cho phép người dùng phá hủy hoặc đóng tất cả các cửa sổ bất cứ lúc nào sau khi thoát khỏi tập lệnh.

    Python3

    import cv2

    image = cv2.imread(

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    0
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    1

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    2
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    3
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    4

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    5
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    6
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    1

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    8=
    cv2.imshow('Original image',image)
    cv2.imshow('Gray image', gray)
    
    0

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    2
    cv2.imshow('Original image',image)
    cv2.imshow('Gray image', gray)
    
    2
    cv2.imshow('Original image',image)
    cv2.imshow('Gray image', gray)
    
    3

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    5
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    6
    cv2.imshow('Original image',image)
    cv2.imshow('Gray image', gray)
    
    6

    cv2.imshow('Original image',image)
    cv2.imshow('Gray image', gray)
    
    7

    Hình ảnh đầu vào: & NBSP; 

    Hướng dẫn how do i convert rgb to grayscale in python opencv? - làm cách nào để chuyển đổi rgb sang thang độ xám trong python opencv?

    Hình ảnh đầu ra: & NBSP;

    Hướng dẫn how do i convert rgb to grayscale in python opencv? - làm cách nào để chuyển đổi rgb sang thang độ xám trong python opencv?

    Phương pháp 2: Sử dụng hàm cv2.imread () với flag = zero

    Nhập opencv và đọc hình ảnh gốc bằng iMread () hơn là chuyển đổi sang giao thông màu xám bằng hàm cv2.cvtcolor (). & Nbsp;

    Python3

    import cv2

    image = cv2.imread(

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    0
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    1

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    2
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
    8
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
    9

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    5
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    6
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    1

    cv2.imshow('Original image',image)
    cv2.imshow('Gray image', gray)
    
    7

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    8=
    cv2.imshow('Original image',image)
    cv2.imshow('Gray image', gray)
    
    0

    Hình ảnh đầu vào: & NBSP;

    Python3

    import cv2

    image = cv2.imread(

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    0
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    1

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    8=
    cv2.imshow('Original image',image)
    cv2.imshow('Gray image', gray)
    
    0

    Hình ảnh đầu vào: & NBSP;

    Hình ảnh đầu ra: & NBSP;

    Phương pháp 2: Sử dụng hàm cv2.imread () với flag = zero

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    2
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
    8
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
    9

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    5
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    6
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    1

    cv2.imshow('Original image',image)
    cv2.imshow('Gray image', gray)
    
    7

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    8=
    cv2.imshow('Original image',image)
    cv2.imshow('Gray image', gray)
    
    0

    Hình ảnh đầu vào: & NBSP;


    Làm cách nào để chuyển đổi hình ảnh RGB thành thang độ xám trong Python Opencv?

    Việc chuyển đổi từ hình ảnh RGB sang màu xám được thực hiện với: cvtcolor (SRC, BWSRC, CV :: Color_RGB2Gray);Việc sắp xếp lại kênh nâng cao hơn cũng có thể được thực hiện với CV :: MixChannels.cvtColor(src, bwsrc, cv::COLOR_RGB2GRAY); More advanced channel reordering can also be done with cv::mixChannels.

    Làm cách nào để chuyển đổi RGB thành thang độ xám trong Python?

    Làm thế nào để chuyển đổi một hình ảnh từ RGB sang thang độ xám trong Python..
    Phương pháp 1: Sử dụng hình ảnh.đổi().
    Phương pháp 2: Sử dụng CV2.imread ().
    Phương pháp 3: Sử dụng các thư viện Numpy và Matplotlib ..
    Phương pháp 4: Sử dụng các thư viện matplotlib và scikit-learn ..

    Làm cách nào để tạo màu thành thang độ xám bằng opencv?

    phương thức cvtColor () với cv2.color_bgr2gray dưới dạng tham số để chuyển đổi nó thành quy mô màu xám.Hiển thị khung bằng CV2.phương thức imshow (). COLOR_BGR2GRAY as a parameter to convert it into gray-scale. Display the frame using the cv2. imshow() method.

    Làm cách nào để chuyển đổi hình ảnh màu thành thang độ xám trong Python?

    Phương pháp 1: Sử dụng CV2.Nhập opencv và đọc hình ảnh gốc bằng iMread () hơn là chuyển đổi sang độ xám bằng hàm cv2.cvtcolor ().Hàm DestallAllWindows () cho phép người dùng phá hủy hoặc đóng tất cả các cửa sổ bất cứ lúc nào sau khi thoát khỏi tập lệnh.Import the OpenCV and read the original image using imread() than convert to grayscale using cv2. cvtcolor() function. destroyAllWindows() function allows users to destroy or close all windows at any time after exiting the script.