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 সামঞ্জস্য করুন
এই ক্রিয়াকলাপটি একটি প্রদত্ত 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')