Hướng dẫn how do i convert rgb image to grayscale in python opencv? - làm cách nào để chuyển đổi hình ảnh 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 image to grayscale in python opencv? - làm cách nào để chuyển đổi hình ảnh 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

    • Grayscaling là quá trình chuyển đổi một hình ảnh từ các không gian màu khác, ví dụ: RGB, CMYK, HSV, v.v. đến các sắc thái của màu xám. Nó thay đổi giữa màu đen hoàn chỉnh và trắng hoàn chỉnh. For example, In RGB images there are three color channels and three dimensions while grayscale images are single-dimensional.
    • Tầm quan trọng của Grayscaling & NBSP; 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.
    • 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. 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.

    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.

    Đố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.

    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.

    Python3

    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.

    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

    import cv2

    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

    image = cv2.imread(

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

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

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

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

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

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

    Python3

    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.

    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

    import cv2

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

    Python3

    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.

    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;

    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

    import cv2

    image = cv2.imread(

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


    Làm cách nào để chuyển đổi 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);cvtColor(src, bwsrc, cv::COLOR_RGB2GRAY);

    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 màu sắc thành thang độ xám trong Python?

    Những cách khác nhau để chuyển đổi hình ảnh thành thang độ xám trong Python..
    Hình ảnh đầu vào ..
    Chuyển đổi hình ảnh Grays Vange với Skimage (Hình ảnh Scikit) - Màu sắc.rgb2gray ().
    Hình ảnh chuyển đổi thang độ xám với gối (PIL) - Chuyển đổi ().
    Hình ảnh Chuyển đổi thang độ lớn với OpenCV - CV2.imread ().
    Hình ảnh Chuyển đổi thang độ lớn với OpenCV - CV2.cvtcolor ().

    Làm cách nào để thay đổi hình ảnh màu thành màu đen và trắng trong opencv?

    Sử dụng OpenCV để chuyển đổi hình ảnh thành màu đen và trắng Một kỹ thuật ngưỡng nhị phân đơn giản trong OpenCV có thể được sử dụng để chuyển đổi hình ảnh thành màu đen và trắng.Chúng tôi thiết lập một giá trị ngưỡng và mỗi giá trị pixel được so sánh với ngưỡng này.Nếu giá trị pixel nhỏ hơn ngưỡng này, nó sẽ được đặt thành 0.A simple binary thresholding technique in OpenCV can be used to convert an image to black and white. We establish a threshold value and each pixel value is compared with this threshold. If the pixel value is less than this threshold, it is set to 0.