TensorFlow.org'da görüntüleyin | Google Colab'da çalıştırın | Kaynağı GitHub'da görüntüleyin | Not defterini indir |
genel bakış
Bilgisayarla görmede, seçilen renk uzayı, modelin performansına önemli ölçüde sahip olabilir. Birlikte RGB modeli gerçekleştirir daha manay durumlarda en çok renk alanı olduğu gibi, alternatif renk uzayı geçildiğinde YUV , YCbCr , XYZ (CIE) , vs.
tensorflow-io paket görüntü verilerini hazırlayıp güçlendirmek için kullanılabilir renk alanı dönüşüm API'ler bir listesini sağlar.
Kurmak
Gerekli Paketleri kurun ve çalışma zamanını yeniden başlatın
pip install -q tensorflow-io
Örnek resmi indirin
Bu eğitimde kullanılan görüntü örneği olan karda kedi herhangi JPEG görüntüleri yerini olabilir gerçi.
Görüntüyü indirmek ve yerel diske kaydeder aşağıdaki sample.jpg :
curl -o sample.jpg -L https://storage.googleapis.com/download.tensorflow.org/example_images/320px-Felis_catus-cat_on_snow.jpgls -ls sample.jpg
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 17858 100 17858 0 0 235k 0 --:--:-- --:--:-- --:--:-- 235k
20 -rw-rw-r-- 1 kbuilder kokoro 17858 Oct 27 16:33 sample.jpg
kullanım
Resim Dosyasını Oku
Okuma ve görüntüyü deşifre uint8 şeklinin tensör (213, 320, 3)
import tensorflow as tf
import tensorflow_io as tfio
image = tf.image.decode_jpeg(tf.io.read_file('sample.jpg'))
print(image.shape, image.dtype)
(213, 320, 3) <dtype: 'uint8'>
Görüntü şu şekilde görüntülenebilir:
import matplotlib.pyplot as plt
plt.figure()
plt.imshow(image)
plt.axis('off')
plt.show()

RGB'yi Gri Tonlamaya Dönüştür
Bir RGB görüntü dönüştürülebilir Grayscale ile 1: 3 ile bir kanal azaltma tfio.experimental.color.rgb_to_grayscale :
grayscale = tfio.experimental.color.rgb_to_grayscale(image)
print(grayscale.shape, grayscale.dtype)
# use tf.squeeze to remove last channel for plt.imshow to display:
plt.figure()
plt.imshow(tf.squeeze(grayscale, axis=-1), cmap='gray')
plt.axis('off')
plt.show()
(213, 320, 1) <dtype: 'uint8'>

RGB'yi BGR'ye dönüştür
Bazı resim yazılım ve kamera manufacturors tercih edebilirsiniz BGR yoluyla elde edilebilir, tfio.experimental.color.rgb_to_bgr :
bgr = tfio.experimental.color.rgb_to_bgr(image)
print(bgr.shape, bgr.dtype)
plt.figure()
plt.imshow(bgr)
plt.axis('off')
plt.show()
(213, 320, 3) <dtype: 'uint8'>

RGB'yi CIE XYZ'ye Dönüştür
CIE XYZ (veya CIE 1931 XYZ birçok görüntü işleme programlarında kullanılan yaygın bir renk alanıdır. Aşağıdaki RGB dönüşüm CIE XYZ aracılığıyla tfio.experimental.color.rgb_to_xyz . Not tfio.experimental.color.rgb_to_xyz kayan nokta girişi varsayar aralığında [0, 1] nedenle ek bir ön işleme tabi:
# convert to float32
image_float32 = tf.cast(image, tf.float32) / 255.0
xyz_float32 = tfio.experimental.color.rgb_to_xyz(image_float32)
# convert back uint8
xyz = tf.cast(xyz_float32 * 255.0, tf.uint8)
print(xyz.shape, xyz.dtype)
plt.figure()
plt.imshow(xyz)
plt.axis('off')
plt.show()
(213, 320, 3) <dtype: 'uint8'>

RGB'yi YCbCr'ye Dönüştür
Son olarak, YCbCr birçok video sistemlerinde varsayılan renk alanıdır. Dönüştürülüyor YCbCr yoluyla yapılabilir tfio.experimental.color.rgb_to_ycbcr :
ycbcr = tfio.experimental.color.rgb_to_ycbcr(image)
print(ycbcr.shape, ycbcr.dtype)
plt.figure()
plt.imshow(ycbcr, cmap='gray')
plt.axis('off')
plt.show()
(213, 320, 3) <dtype: 'uint8'>

Ne olsa, yani daha ilginç YCbCr ayrılabilirdi Y' (luma), Cb (mavi-fark kroma) ve Cr (kırmızı-fark kroma) her bir bileşen taşıma algısal anlamlı bilgiler ile bileşenler:
y, cb, cr = ycbcr[:,:,0], ycbcr[:,:,1], ycbcr[:,:,2]
# Y' component
plt.figure()
plt.imshow(y, cmap='gray')
plt.axis('off')
plt.show()
# Cb component
plt.figure()
plt.imshow(cb, cmap='gray')
plt.axis('off')
plt.show()
# Cr component
plt.figure()
plt.imshow(cr, cmap='gray')
plt.axis('off')
plt.show()



TensorFlow.org'da görüntüleyin
Google Colab'da çalıştırın
Kaynağı GitHub'da görüntüleyin
Not defterini indir