টেনসরফ্লো অ্যাডঅন ইমেজ: অপারেশন

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)

png

একটি কালো এবং সাদা সংস্করণ তৈরি করুন

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

png

tfa.image দিয়ে খেলুন

ফিল্টারিং মানে

গড় ফিল্টারিং হল একটি ফিল্টারিং কৌশল, যা প্রায়শই একটি চিত্র বা সংকেত থেকে শব্দ অপসারণ করতে ব্যবহৃত হয়। ধারণাটি হল প্রতিবেশী পিক্সেলের গড় মান দিয়ে প্রতিস্থাপন করা ছবি পিক্সেলের মাধ্যমে পিক্সেলের মাধ্যমে চালানো।

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

png

আবর্তিত

এই ক্রিয়াকলাপটি ব্যবহারকারীর দ্বারা প্রদত্ত চিত্রটিকে কোণ (রেডিয়ানে) ইনপুট দ্বারা ঘোরায়।

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

png

রূপান্তর

এই অপারেশন ব্যবহারকারীর দেওয়া ট্রান্সফর্ম ভেক্টরের ভিত্তিতে প্রদত্ত চিত্রটিকে রূপান্তরিত করে।

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

png

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)

png

YIQ এ HSV সামঞ্জস্য করুন

এই ক্রিয়াকলাপটি একটি প্রদত্ত 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)

png

ঘন ইমেজ ওয়ার্প

এই ক্রিয়াকলাপটি অফসেট ভেক্টরের প্রবাহ ক্ষেত্র দ্বারা নির্দিষ্ট যে কোনও চিত্রের নন-লিনিয়ার ওয়ার্পের জন্য (উদাহরণস্বরূপ এখানে র্যান্ডম মান ব্যবহার করা হয়েছে)।

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)

png

ইউক্লিডিয়ান দূরত্ব রূপান্তর

এই অপারেশনটি ফোরগ্রাউন্ড পিক্সেল থেকে পটভূমিতে ইউক্লিডিয়ান দূরত্বের সাথে পিক্সেল মান আপডেট করে।

  • দ্রষ্টব্য: এটি শুধুমাত্র বাইনারি চিত্র নেয় এবং রূপান্তরিত চিত্রে পরিণত হয়। যদি একটি ভিন্ন চিত্র দেওয়া হয় তবে এটি একক মান সহ একটি চিত্রে পরিণত হয়
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')

png