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ış
Bu not defteri, TensorFlow Eklentilerinde bazı görüntü işlemlerinin nasıl kullanılacağını gösterecektir.
Bu örnekte ele alacağınız görüntü işlemlerinin listesi:
Kurmak
pip install -q -U tensorflow-addons
import tensorflow as tf
import numpy as np
import tensorflow_addons as tfa
import matplotlib.pyplot as plt
Görüntüleri Hazırlayın ve İnceleyin
resimleri indir
img_path = tf.keras.utils.get_file('tensorflow.png','https://tensorflow.org/images/tf_logo.png')
Downloading data from https://tensorflow.org/images/tf_logo.png 40960/39781 [==============================] - 0s 3us/step
Görüntüleri inceleyin
TensorFlow Simgesi
img_raw = tf.io.read_file(img_path)
img = tf.io.decode_image(img_raw)
img = tf.image.convert_image_dtype(img, tf.float32)
img = tf.image.resize(img, [500,500])
plt.title("TensorFlow Logo with shape {}".format(img.shape))
_ = plt.imshow(img)
Siyah beyaz bir versiyon yapın
bw_img = 1.0 - tf.image.rgb_to_grayscale(img)
plt.title("Mask image with shape {}".format(bw_img.shape))
_ = plt.imshow(bw_img[...,0], cmap='gray')
tfa.image ile oynayın
ortalama filtreleme
Ortalama filtreleme, genellikle bir görüntü veya sinyalden gürültüyü gidermek için kullanılan bir filtreleme tekniğidir. Buradaki fikir, görüntü pikselinden piksel piksel geçmek ve onu komşu piksellerin ortalama değerleriyle değiştirmektir.
mean = tfa.image.mean_filter2d(img, filter_shape=11)
_ = plt.imshow(mean)
Döndür
Bu işlem, verilen görüntüyü kullanıcı tarafından girilen açı (radyan cinsinden) kadar döndürür.
rotate = tfa.image.rotate(img, tf.constant(np.pi/8))
_ = plt.imshow(rotate)
dönüştürmek
Bu işlem, verilen görüntüyü, kullanıcı tarafından verilen dönüştürme vektörü temelinde dönüştürür.
transform = tfa.image.transform(img, [1.0, 1.0, -250, 0.0, 1.0, 0.0, 0.0, 0.0])
_ = plt.imshow(transform)
YIQ'da Rastgele HSV
Bu işlem, belirli bir RGB görüntüsünün renk ölçeğini YIQ'ya değiştirir, ancak burada delta tonu ve doygunluk değerleri, verilen aralıktan rastgele seçilir.
delta = 0.5
lower_saturation = 0.1
upper_saturation = 0.9
lower_value = 0.2
upper_value = 0.8
rand_hsvinyiq = tfa.image.random_hsv_in_yiq(img, delta, lower_saturation, upper_saturation, lower_value, upper_value)
_ = plt.imshow(rand_hsvinyiq)
YIQ'da HSV'yi ayarlayın
Bu işlem, verilen bir RGB görüntüsünün renk ölçeğini YIQ'ya değiştirir, ancak burada rastgele seçim yapmak yerine delta hue ve doygunluk değerleri kullanıcıdan girdilerdir.
delta = 0.5
saturation = 0.3
value = 0.6
adj_hsvinyiq = tfa.image.adjust_hsv_in_yiq(img, delta, saturation, value)
_ = plt.imshow(adj_hsvinyiq)
Yoğun Görüntü Çarpması
Bu işlem, ofset vektörünün akış alanı tarafından belirtilen herhangi bir görüntünün doğrusal olmayan çarpıtılması içindir (burada örneğin rastgele değerler kullanılmıştır).
input_img = tf.image.convert_image_dtype(tf.expand_dims(img, 0), tf.dtypes.float32)
flow_shape = [1, input_img.shape[1], input_img.shape[2], 2]
init_flows = np.float32(np.random.normal(size=flow_shape) * 2.0)
dense_img_warp = tfa.image.dense_image_warp(input_img, init_flows)
dense_img_warp = tf.squeeze(dense_img_warp, 0)
_ = plt.imshow(dense_img_warp)
Öklid Uzaklık Dönüşümü
Bu işlem, piksel değerini ön plan pikselinden arka plan pikseline olan öklid mesafesi ile günceller.
- Not : Yalnızca ikili görüntü alır ve dönüştürülmüş görüntüyle sonuçlanır. Farklı bir görüntü verilirse, tek değerli bir görüntü ile sonuçlanır.
gray = tf.image.convert_image_dtype(bw_img,tf.uint8)
# The op expects a batch of images, so add a batch dimension
gray = tf.expand_dims(gray, 0)
eucid = tfa.image.euclidean_dist_transform(gray)
eucid = tf.squeeze(eucid, (0, -1))
_ = plt.imshow(eucid, cmap='gray')