انضم إلى TensorFlow في مؤتمر Google I / O ، 11-12 مايو سجل الآن

صورة إضافات TensorFlow: العمليات

عرض على TensorFlow.org تشغيل في Google Colab عرض المصدر على جيثب تحميل دفتر

ملخص

سيوضح هذا الكمبيوتر الدفتري كيفية استخدام بعض عمليات الصور في TensorFlow Addons.

فيما يلي قائمة بعمليات الصور التي ستغطيها في هذا المثال:

اقامة

pip install -q -U tensorflow-addons
import tensorflow as tf
import numpy as np
import tensorflow_addons as tfa
import matplotlib.pyplot as plt

تحضير وفحص الصور

قم بتنزيل الصور

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

افحص الصور

أيقونة TensorFlow

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)

بي إن جي

اصنع نسخة بالأبيض والأسود

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

يعني التصفية

التصفية المتوسطة هي تقنية ترشيح تُستخدم غالبًا لإزالة التشويش من صورة أو إشارة. تكمن الفكرة في تشغيل صورة بكسل بكسل واستبدالها بمتوسط ​​قيم وحدات البكسل المجاورة.

mean = tfa.image.mean_filter2d(img, filter_shape=11)
_ = plt.imshow(mean)

بي إن جي

استدارة

تقوم هذه العملية بتدوير الصورة المعطاة بالزاوية (بالراديان) التي يدخلها المستخدم.

rotate = tfa.image.rotate(img, tf.constant(np.pi/8))
_ = plt.imshow(rotate)

بي إن جي

تحول

تقوم هذه العملية بتحويل الصورة المعطاة على أساس متجه التحويل المعطى من قبل المستخدم.

transform = tfa.image.transform(img, [1.0, 1.0, -250, 0.0, 1.0, 0.0, 0.0, 0.0])
_ = plt.imshow(transform)

بي إن جي

HSV عشوائي في YIQ

تغير هذه العملية مقياس اللون لصورة RGB معينة إلى YIQ ولكن هنا يتم اختيار قيم دلتا الصبغة والتشبع عشوائيًا من النطاق المحدد.

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)

بي إن جي

ضبط HSV في YIQ

تغير هذه العملية مقياس اللون لصورة RGB معينة إلى YIQ ولكن هنا بدلاً من الاختيار العشوائي ، تعد قيم دلتا الصبغة والتشبع مدخلات من المستخدم.

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)

بي إن جي

صورة كثيفة الاعوجاج

هذه العملية مخصصة للالتواء غير الخطي لأي صورة محددة بواسطة مجال التدفق لمتجه الإزاحة (تستخدم هنا القيم العشوائية على سبيل المثال).

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)

بي إن جي

تحويل المسافة الإقليدية

تعمل هذه العملية على تحديث قيمة البكسل بمسافة إقليدية من بكسل المقدمة إلى الخلفية.

  • ملاحظة: يأخذ فقط صورة ثنائية وينتج عنه صورة محولة. إذا تم إعطاء صورة مختلفة ، فسيؤدي ذلك إلى صورة ذات قيمة واحدة
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')

بي إن جي