matplotlibBir RGB görüntüde okumak ve gri tonlamaya dönüştürmek için kullanmaya çalışıyorum .
Matlab'da bunu kullanıyorum:
img = rgb2gray(imread('image.png'));
Gelen matplotlib öğretici bunu kapsamaz. Sadece görüntüde okuyorlar
import matplotlib.image as mpimg
img = mpimg.imread('image.png')
ve sonra diziyi dilimliyorlar, ama bu RGB'yi anladığımdan gri tonlamaya dönüştürmekle aynı şey değil.
lum_img = img[:,:,0]
Numpy veya matplotlib'in rgb'den griye dönüştürmek için yerleşik bir işlevi olmadığına inanmak zor. Bu görüntü işlemede yaygın bir işlem değil mi?
imread5 dakika içinde içe aktarılan görüntü ile çalışan çok basit bir fonksiyon yazdım . Bu korkunç derecede verimsiz, ama bu yüzden yerleşik bir profesyonel uygulama umuyordum.
Sebastian işlevimi geliştirdi, ancak hala yerleşik olanı bulmayı umuyorum.
matlab (NTSC / PAL) uygulaması:
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
gray = np.mean(rgb, -1)çalışıyor. Teşekkürler. Bunu kullanmamak için bir neden var mı? Bunun yerine çözümleri aşağıdaki cevaplarda neden kullanayım?
np.mean(rgb, -1).
0.2989 * R + 0.5870 * G + 0.1140 * B Bunu yapmanın standart yolu olduğunu varsayıyorum.





gray = np.mean(rgb, -1). Belkirgb[...,:3]aslında rgba ise.