TensorFlow Addons छवि: संचालन

TensorFlow.org पर देखें Google Colab में चलाएं GitHub पर स्रोत देखें नोटबुक डाउनलोड करें

अवलोकन

यह नोटबुक प्रदर्शित करेगी कि 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

छवियों का निरीक्षण करें

टेंसरफ्लो आइकन

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)

पीएनजी

YIQ . में रैंडम HSV

यह ऑपरेशन किसी दी गई 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)

पीएनजी

YIQ में HSV समायोजित करें

यह ऑपरेशन किसी दी गई आरजीबी छवि के रंग पैमाने को वाईआईक्यू में बदल देता है लेकिन यहां यादृच्छिक रूप से चुनने के बजाय, डेल्टा ह्यू और संतृप्ति मान इनपुट होते हैं जो उपयोगकर्ता बनाते हैं।

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')

पीएनजी