TensorFlow.org এ দেখুন | Google Colab-এ চালান | GitHub-এ উৎস দেখুন | নোটবুক ডাউনলোড করুন |
ওভারভিউ
কম্পিউটার ভিশনে, নির্বাচিত রঙের স্থান মডেলটির কার্যকারিতা উল্লেখযোগ্য হতে পারে। যদিও RGB
সবচেয়ে সাধারণ রং স্থান, Manay পরিস্থিতিতে মডেল সঞ্চালিত উত্তম যখন যেমন বিকল্প রঙ স্পেস স্যুইচ YUV
, YCbCr
, XYZ (CIE)
, ইত্যাদি
tensorflow-io
প্যাকেজ রঙ স্থান রূপান্তর API গুলি ইমেজ তথ্য প্রস্তুত ও বৃদ্ধির জন্য ব্যবহার করা যেতে পারে একটি তালিকা প্রদান করে।
সেটআপ
প্রয়োজনীয় প্যাকেজ ইনস্টল করুন এবং রানটাইম পুনরায় চালু করুন
pip install -q tensorflow-io
নমুনা ইমেজ ডাউনলোড করুন
এই টিউটোরিয়ালটিতে ব্যবহৃত ইমেজ উদাহরণ হচ্ছে হয় বরফ বিড়াল যদিও এটা কোন কোন JPEG ইমেজ দ্বারা প্রতিস্থাপিত করা যেতে পারে।
ইমেজ ডাউনলোড করুন যেমন স্থানীয় ডিস্কে সংরক্ষণ করতে হবে নিম্নলিখিত sample.jpg
:
curl -o sample.jpg -L https://storage.googleapis.com/download.tensorflow.org/example_images/320px-Felis_catus-cat_on_snow.jpg
ls -ls sample.jpg
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 17858 100 17858 0 0 235k 0 --:--:-- --:--:-- --:--:-- 235k 20 -rw-rw-r-- 1 kbuilder kokoro 17858 Oct 27 16:33 sample.jpg
ব্যবহার
ইমেজ ফাইল পড়ুন
পড়ে এবং মধ্যে চিত্র ডিকোড uint8
আকৃতি টেন্সর (213, 320, 3)
import tensorflow as tf
import tensorflow_io as tfio
image = tf.image.decode_jpeg(tf.io.read_file('sample.jpg'))
print(image.shape, image.dtype)
(213, 320, 3) <dtype: 'uint8'>
চিত্রটি দ্বারা প্রদর্শিত হতে পারে:
import matplotlib.pyplot as plt
plt.figure()
plt.imshow(image)
plt.axis('off')
plt.show()
আরজিবিকে গ্রেস্কেলে রূপান্তর করুন
একটি RGB
চিত্রে পরিবর্তিত করা যায় Grayscale
1 থেকে 3 থেকে চ্যানেল কমাতে tfio.experimental.color.rgb_to_grayscale
:
grayscale = tfio.experimental.color.rgb_to_grayscale(image)
print(grayscale.shape, grayscale.dtype)
# use tf.squeeze to remove last channel for plt.imshow to display:
plt.figure()
plt.imshow(tf.squeeze(grayscale, axis=-1), cmap='gray')
plt.axis('off')
plt.show()
(213, 320, 1) <dtype: 'uint8'>
RGB কে BGR তে রূপান্তর করুন
কিছু ইমেজ সফ্টওয়্যার ও ক্যামেরা manufacturors পছন্দ হতে পারে BGR
, যার মাধ্যমে প্রাপ্ত করা যাবে tfio.experimental.color.rgb_to_bgr
:
bgr = tfio.experimental.color.rgb_to_bgr(image)
print(bgr.shape, bgr.dtype)
plt.figure()
plt.imshow(bgr)
plt.axis('off')
plt.show()
(213, 320, 3) <dtype: 'uint8'>
RGB কে CIE XYZ এ রূপান্তর করুন
CIE XYZ
(অথবা CIE 1931 XYZ
একটি সাধারণ রং অনেক ইমেজ প্রসেসিং প্রোগ্রামে ব্যবহৃত স্থান। নিম্নলিখিত আরজিবি থেকে রুপান্তরের হয় CIE XYZ
মাধ্যমে tfio.experimental.color.rgb_to_xyz
। উল্লেখ্য tfio.experimental.color.rgb_to_xyz
ফ্লোটিং পয়েন্ট ইনপুট অনুমান সীমার মধ্যে [0, 1]
তাই অতিরিক্ত প্রাক প্রক্রিয়াকরণ প্রয়োজন হয়:
# convert to float32
image_float32 = tf.cast(image, tf.float32) / 255.0
xyz_float32 = tfio.experimental.color.rgb_to_xyz(image_float32)
# convert back uint8
xyz = tf.cast(xyz_float32 * 255.0, tf.uint8)
print(xyz.shape, xyz.dtype)
plt.figure()
plt.imshow(xyz)
plt.axis('off')
plt.show()
(213, 320, 3) <dtype: 'uint8'>
RGB কে YCbCr এ রূপান্তর করুন
অবশেষে, YCbCr
অনেক ভিডিও সিস্টেমের মধ্যে ডিফল্ট রং স্থান। রূপান্তর YCbCr
মাধ্যমে কাজ করা যেতে পারে tfio.experimental.color.rgb_to_ycbcr
:
ycbcr = tfio.experimental.color.rgb_to_ycbcr(image)
print(ycbcr.shape, ycbcr.dtype)
plt.figure()
plt.imshow(ycbcr, cmap='gray')
plt.axis('off')
plt.show()
(213, 320, 3) <dtype: 'uint8'>
কি আরো আকর্ষণীয়, যদিও, যে হয় YCbCr
মধ্যে পচে যেতে পারে Y'
(Luma), Cb
(নীল পার্থক্য ক্রোমা), এবং Cr
(লাল-পার্থক্য ক্রোমা) প্রতিটি উপাদানের বহন perceptually অর্থপূর্ণ তথ্য সমেত উপাদান:
y, cb, cr = ycbcr[:,:,0], ycbcr[:,:,1], ycbcr[:,:,2]
# Y' component
plt.figure()
plt.imshow(y, cmap='gray')
plt.axis('off')
plt.show()
# Cb component
plt.figure()
plt.imshow(cb, cmap='gray')
plt.axis('off')
plt.show()
# Cr component
plt.figure()
plt.imshow(cr, cmap='gray')
plt.axis('off')
plt.show()