Tôi đang cố gắng sử dụng matplotlib để đọc trong hình ảnh RGB và chuyển đổi nó thành thang độ xám.
Trong Matlab, tôi sử dụng điều này:
img = rgb2gray(imread('image.png'));Trong hướng dẫn matplotlib, họ không bao gồm nó. Họ chỉ đọc trong hình ảnh
import matplotlib.image as mpimg img = mpimg.imread('image.png')Và sau đó họ cắt mảng, nhưng đó không giống với việc chuyển đổi RGB thành thang độ xám từ những gì tôi hiểu.
lum_img = img[:,:,0]Tôi thấy khó tin rằng Numpy hoặc Matplotlib không có chức năng tích hợp để chuyển đổi từ RGB sang màu xám. Đây không phải là một hoạt động phổ biến trong xử lý hình ảnh?
Tôi đã viết một chức năng rất đơn giản hoạt động với hình ảnh được nhập bằng imread trong 5 phút. Nó không hiệu quả khủng khiếp, nhưng đó là lý do tại sao tôi hy vọng một triển khai chuyên nghiệp tích hợp.
Sebastian đã cải thiện chức năng của tôi, nhưng tôi vẫn hy vọng tìm thấy một trong những tích hợp.
Thực hiện của Matlab (NTSC/PAL):
import numpy as np def rgb2gray(rgb): r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2] gray = 0.2989 * r + 0.5870 * g + 0.1140 * b return grayI = RGB2Gray (RGB) chuyển đổi hình ảnh TrueColor RGB thành hình ảnh thang độ xám i. Hàm RGB2Gray chuyển đổi hình ảnh RGB thành thang độ xám bằng cách loại bỏ thông tin màu sắc và độ bão hòa trong khi vẫn giữ được độ chói. Nếu bạn đã cài đặt Công cụ điện toán song song ™, RGB2Gray có thể thực hiện chuyển đổi này trên GPU.
Làm thế nào để bạn chuyển đổi một hình ảnh thành quy mô màu xám trong Python?
Những cách khác nhau để chuyển đổi hình ảnh thành thang độ xám trong Python.
I = RGB2Gray (RGB) chuyển đổi hình ảnh TrueColor RGB thành hình ảnh thang độ xám i. Hàm RGB2Gray chuyển đổi hình ảnh RGB thành thang độ xám bằng cách loại bỏ thông tin màu sắc và độ bão hòa trong khi vẫn giữ được độ chói. Nếu bạn đã cài đặt Công cụ điện toán song song ™, RGB2Gray có thể thực hiện chuyển đổi này trên GPU.
Làm thế nào để bạn chuyển đổi một hình ảnh thành quy mô màu 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 .. 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.
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 (). For example, In RGB images there are three color channels and three dimensions while grayscale images are single-dimensional.
- Hình ảnh Chuyển đổi thang độ lớn với OpenCV - CV2. imread (). 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.
- Hình ảnh Chuyển đổi thang độ lớn với OpenCV - CV2. cvtcolor (). 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 = import matplotlib.image as mpimg img = mpimg.imread('image.png') 0import matplotlib.image as mpimg img = mpimg.imread('image.png') 1import matplotlib.image as mpimg img = mpimg.imread('image.png') 2
import matplotlib.image as mpimg img = mpimg.imread('image.png') 3import matplotlib.image as mpimg img = mpimg.imread('image.png') 4import matplotlib.image as mpimg img = mpimg.imread('image.png') 5
import matplotlib.image as mpimg img = mpimg.imread('image.png') 6import matplotlib.image as mpimg img = mpimg.imread('image.png') 7import matplotlib.image as mpimg img = mpimg.imread('image.png') 2
import matplotlib.image as mpimg img = mpimg.imread('image.png') 9= lum_img = img[:,:,0] 1
import matplotlib.image as mpimg img = mpimg.imread('image.png') 3lum_img = img[:,:,0] 3lum_img = img[:,:,0] 4
import matplotlib.image as mpimg img = mpimg.imread('image.png') 6import matplotlib.image as mpimg img = mpimg.imread('image.png') 7lum_img = img[:,:,0] 7
lum_img = img[:,:,0] 8
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
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
import numpy as np def rgb2gray(rgb): r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2] gray = 0.2989 * r + 0.5870 * g + 0.1140 * b return gray 1= import matplotlib.image as mpimg img = mpimg.imread('image.png') 0import matplotlib.image as mpimg img = mpimg.imread('image.png') 1import numpy as np def rgb2gray(rgb): r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2] gray = 0.2989 * r + 0.5870 * g + 0.1140 * b return gray 5import matplotlib.image as mpimg img = mpimg.imread('image.png') 7import matplotlib.image as mpimg img = mpimg.imread('image.png') 2
import matplotlib.image as mpimg img = mpimg.imread('image.png') 3import numpy as np def rgb2gray(rgb): r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2] gray = 0.2989 * r + 0.5870 * g + 0.1140 * b return gray 9matplotlib0
import matplotlib.image as mpimg img = mpimg.imread('image.png') 6import matplotlib.image as mpimg img = mpimg.imread('image.png') 7import matplotlib.image as mpimg img = mpimg.imread('image.png') 2
lum_img = img[:,:,0] 8
Hình ảnh đầu ra:
Phương pháp 3: Sử dụng thao tác pixel (phương pháp trung bình)
Python3
import cv2
import numpy as np def rgb2gray(rgb): r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2] gray = 0.2989 * r + 0.5870 * g + 0.1140 * b return gray 1= import matplotlib.image as mpimg img = mpimg.imread('image.png') 0import matplotlib.image as mpimg img = mpimg.imread('image.png') 1import matplotlib.image as mpimg img = mpimg.imread('image.png') 2
imread2= imread4import matplotlib.image as mpimg img = mpimg.imread('image.png') 7imread6imread7imread8
imread9 import0import1 import2import3
import4imread9 import6import1 import2import9
‘
import matplotlib.image as mpimg img = mpimg.imread('image.png') 3import numpy as np def rgb2gray(rgb): r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2] gray = 0.2989 * r + 0.5870 * g + 0.1140 * b return gray 9matplotlib0
import matplotlib.image as mpimg img = mpimg.imread('image.png') 6import matplotlib.image as mpimg img = mpimg.imread('image.png') 7import matplotlib.image as mpimg img = mpimg.imread('image.png') 2
lum_img = img[:,:,0] 8
Hình ảnh đầu ra:
Phương pháp 3: Sử dụng thao tác pixel (phương pháp trung bình)