tensorflow.image.decode_image




Download 5,69 Mb.
bet87/182
Sana19.05.2024
Hajmi5,69 Mb.
#244351
1   ...   83   84   85   86   87   88   89   90   ...   182
Bog'liq
Python sun\'iy intellekt texnologiyasi Dasrlik 2024

tensorflow.image.decode_image har qanday turdagi tasvirni dekodlashi mumkinligi sababli, siz boshqa ikkita dekodlash funksiyasi bilan nima uchun bezovtalanayotganimizni qiziqtirgan bo‘lishingiz mumkin. Buning sabablaridan biri shundaki, siz faqat ma’lum tasvir formatlaridan foydalanishni xohlashingiz mumkin, bu holda faqat formatga xos dekodlash funksiyasidan foydalanish samaraliroq va kod ravshanligi uchun yaxshiroqdir.
Yana bir sabab, tensorflow.image.decode_image GIF dekodlashni qo‘llab-quvvatlaydi, natijada (kadrlar soni, balandlik, kenglik, kanallar) chiqish shakli paydo bo‘ladi. Funksiya turli shakldagi ma’lumotlarni qaytarishi mumkinligi sababli, biz buni qila olmaymiz. Tasvir hajmini tensorflow.image.resize_images bilan o‘zgartirishimiz kerak bo‘lganda tensorflow.image.decode_image dan foydalaning (keyingi bo‘limga qarang).
Oldingi bo‘limda biz tasvirlarni talqin qilishni muhokama qildik. Agar biz faqat qiymatlarni (oldingi kodga qarang)dekodlash funksiyalaridan biri uchun kerakli argument sifatida o‘tkazsak, biz xom tasvir ma’lumotlarida ko‘rsatilgan talqindan foydalanamiz. Odatda buni qilish yaxshi, lekin ba’zida biz piksellar uchun ma’lum bir formatdan foydalanishni xohlaymiz.
Bu kanallar kalit so‘z argumenti orqali dekodlangan tasvirning piksel formatini o‘zgartirishimiz mumkin. Kanallar argumenti bitta piksel uchun butun sonlar sonini ifodalaydi. Kanallar uchun birlamchi qiymat 0 dir, ya’ni dekodlash funksiyasi dastlabki ma’lumotlardan ko‘rsatilgan talqindan foydalanadi. Kanallarni 1 ga o‘rnatish kulrang rangdagi tasvirni, kanallarnini esa 3 ga o‘rnatish RGB tasvirini belgilaydi. PNG rasmlari uchun biz RGBA rasmlariga mos keladigan kanallarni 4 ga oʻrnatishimiz mumkin. Kanallarni 2 ga o‘rnatish noto‘g’ri.
Ba’zan, biz ma’lumotlarni ko‘paytirish uchun tasvir hajmini o‘zgartirishimizga to‘g’ri keladi. Piksel ma’lumotlarining o‘lchamini o‘zgartirish uchun biz foydalanadigan funksiya tensorflow.image.resize_imagesdir. U ikkita talab qilinadigan argumentni oladi: asl tasvirning dekodlangan maʼlumotlari va tasvirning yangi oʻlchami, bunda yangi_balandlik va yangi_kenglikni ifodalovchi ikkita butun sondan iborat kortej/roʻyxat. buyurtma.
def decode_image(filename, image_type, resize_shape, channels):
value = tensorflow.io.read_file(filename)
if image_type == 'png’:
decoded_image = tensorflow.image.decode_png(value, channels=channels)
elif image_type == 'jpeg’:
decoded_image = tensorflow.image.decode_jpeg(value, channels=channels)
else:
decoded_image = tensorflow.image.decode_image(value, channels=channels)
if resize_shape is not None and image_type in ['png’, 'jpeg’]:
decoded_image = tf.image.resize(decoded_image, resize_shape)
return decoded_image

Download 5,69 Mb.
1   ...   83   84   85   86   87   88   89   90   ...   182




Download 5,69 Mb.