O‘ZBEKISTON RESPUBLIKASI
RAQAMLI TEXNOLOGIYALAR VAZIRLIGI
MUHAMMAD AL‑XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
“VIDEOMA’LUMOTLARGA RAQAMLI ISHLOV BERISH”
fanidan
№ 3-laboratoriya ishi
HISOBOTI
Guruh: 840-20
Talaba: Tursunmurodov Azizbek
Variant raqami: 11
O‘qituvchi: Norkobilov S.
Toshkent – 2024
3-Laboratoriya ishi: Kadr hududini maska yordamida kesib olish.
Ishning maqsadi: Ushbu laboratoriya ishining maqsadi tasvirlarda mantiqiy amallar bajarish orqali belgilangan o‘lchamda tasvir elementini qirqib olish va o‘rnatish kabi amallarni bajarishdan iborat. Buning uchun kadrlarni qo‘shish, ayirish, aralashtirish hamda kadrlarda mantiqiy (AND, OR, NOT, XOR) amallarni bajarish lozim.
Nazariy qism
Ushbu laboratoriya ishining maqsadi tasvirlarda mantiqiy amallar bajarish orqali belgilangan o‘lchamda tasvir elementini qirqib olish va o‘rnatish kabi amallarni bajarishdan iborat. Buning uchun kadrlarni qo‘shish, ayirish, aralashtirish hamda kadrlarda mantiqiy (AND, OR, NOT, XOR) amallarni bajarish lozim.
1-rasm. (a) Tekislikdagi ikkita koordinatalar to‘plami, A va B. (b) A va B to‘plamlar birligi. (c) A va B to‘plamlarning kesishishi. (d) A to‘plamning to‘ldiruvchisi. (e) A to‘plamlarning ayirmasi. va B. (b)—(e) raqamlaridagi soyali maydonlar belgilangan amal natijasi bo‘lgan to‘plam elementlarini ifodalaydi.
Ikki belgilangan hududni, ya’ni oldingi piksellardan tashkil topgan A va B to‘plamlarini ko‘rib chiqamiz (1-rasm). Ushbu ikkita to‘plamdagi OR operatsiyasi bir vaqtning o‘zida A yoki B hamda ikkala to‘plamga tegishli bo‘lgan elementlar to‘plamini (koordinatalar juftligini) beradi. AND amali A va B uchun umumiy bo‘lgan elementlar to‘plamini beradi. A to‘plamga qo‘llaniladigan EMAS amali A to‘plamga tegishli bo‘lmagan elementlar to‘plamini beradi. Chunki biz A berilgan tasvir haqida gapiramiz.
Nazariy jihatdan, faqat uchta mantiqiy amallar VA, YOKI va EMASni amalga oshirish kerak, chunki ular to‘rtinchi qatorda ko‘rsatilganidek, boshqa har qanday mantiqiy operatsiyani faqat ushbu asosiy operatsiyalarni birlashtirish orqali olish mumkin degan ma’noda funksional jihatdan to‘liq sinfni tashkil qiladi.
2-rasm. O‘rnatilgan farq operatsiyasi AND va EMAS yordamida amalga oshiriladi.
Laboratoriya ishini bajarish tartibi:
Ushbu laboratoriya ishini bajarishda quyidagi funksiyalardan foydalaniladi:
- Inkor (NOT) - cv2.bitwise_not(img);
- Yoki (OR) - bitwise_or(img1,img2);
- Va (AND) - bitwise_and(img1, img2)
- Har bir talaba kaggle.com platformasida o‘zining shaxsiy profiliga kirishi va yangi dastur yozish uchun yangi oyna ochishi lozim hamda quyidagicha dastur kodini kiritishi kerak bo‘ladi:
- “kaggle” platformasida yaratilgan 1000x750 o‘lchamdagi maskalar dataseti bo‘yicha o‘z rasmlaringizni birlashtirish.
Tartib raqami bo‘yicha maskalar dataseti
3-rasm. Dasets variantlar.
Dastur kodi:
import cv2
import numpy as np
from matplotlib import pyplot as plt
mask_img = cv2.imread("../input/test-imgs/mask-18.bmp")
mask_img=cv2.cvtColor(mask_img, cv2.COLOR_BGR2RGB)
img_mask_invert = cv2.bitwise_not(mask_img)
img1 = cv2.imread("../input/test-imgs/1.png")
img1=cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)
img2 = cv2.imread("../input/test-imgs/3.png")
img2=cv2.cvtColor(img2, cv2.COLOR_BGR2RGB)
print(mask_img.shape)
print(img1.shape)
print(img2.shape)
img1_m=cv2.bitwise_and(img_mask_invert,img1)
img2_m=cv2.bitwise_and(mask_img,img2)
img_or=cv2.bitwise_or(img1_m,img2_m)
plt.figure(figsize=(40, 40))
ax10 = plt.subplot2grid((5, 2), (0, 0))
ax11 = plt.subplot2grid((5, 2), (0, 1))
ax20 = plt.subplot2grid((5, 2), (1, 0))
ax21 = plt.subplot2grid((5, 2), (1, 1))
ax30 = plt.subplot2grid((5, 2), (2, 0))
ax31 = plt.subplot2grid((5, 2), (2, 1))
ax4 = plt.subplot2grid((5, 2), (3, 0),rowspan=2, colspan=2)
ax10.imshow(img1),ax10.axis('off')
ax11.imshow(img2),ax11.axis('off')
ax20.imshow(img_mask_invert),ax21.axis('off')
ax21.imshow(mask_img),ax20.axis('off')
ax30.imshow(img1_m),ax30.axis('off')
ax31.imshow(img2_m),ax31.axis('off')
ax4.imshow(img_or),ax4.axis('off')
plt.show()
Dastur natijasi:
Original tasvir (a) Original tasvir (b)
4-rasm. Dastur natijasi.
Xulosa
3-Laboratoriya ishida men maskalar yordamida 2 ta rasimni bir-biriga qo’shish ya’ni usma-ust qo’yishni o’rgandim. Bu ish men uchun tajriba bo’ldi. Mantiqiy amallar yordamida belgilangan rasmlarga qirqib olish yo’li bilan o’zgartirishlar kiritdim kadrlarni qo‘shish, ayirish, aralashtirish hamda kadrlarda mantiqiy (AND, OR, NOT, XOR) amallarni bajarish yo’li bilan 2 ta rasm ustida turli amallar bajarish mumkin ekan.
Mening proyektimga havola:
https://www.kaggle.com/code/azizbektursunmurodov/azizbek-lab3/edit
|