Tasvirni silliqlash - Nukus filiali

|
Nukus filiali
|
bet | 8/10 | Sana | 19.05.2024 | Hajmi | 5,85 Mb. | | #243799 |
Bog'liq Muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari uTasvirni silliqlash.
OpenCV cv2.blur() funksiyasidan foydalanib, Python-da tasvirni silliqlashingiz mumkin. Bundan tashqari, cv2.filter2D() yordamida tasvirni silliqlashingiz mumkin. Biroq, cv2.blur() bu harakatni filtrlash va o’rtacha hisoblash uchun tezkor yuqori darajadagi funksiyadir.
Ushbu qo’llanmada biz misollar bilan cv2.blur() funksiyasi yordamida tasvirni silliqlashni o’rganamiz. Misollar biz turli shakldagi yadrolarni ishlatadigan holatlar va uning chiqishdagi silliqlikka ta’sirini o’z ichiga oladi. Quyida img_src shakli yadrosi (5, 5) bilan tasvirni silliqlashtiradigan va loyqa tasvirni qaytaradigan tezkor kod parchasi keltirilgan.
img_rst = cv2.blur(img_src, (5, 5))
Quyida tasvirni silliqlashtirish va saqlash kerak bo’lgan oddiy misol keltirilgan. Bosqichma-bosqich jarayon quyida keltirilgan.
Tasvirni img_src-ga o’qib olamiz.
(5, 5) shakl yadrosi bilan tasvirni silliqlashtiramiz.
Yuqoridagi dasturni ishga tushiramiz. Natijada quyida silliqlashan tasvir keltirilgan:
3.2. Pythonda PyQt yordamida ish stoli ilovasini (GUI) yaratish.
PyQt - bu Python-dan Qt GUI tizimidan foydalanish imkonini beruvchi kutubxona. Qtning o’zi C++ tilida yozilgan. Python-dan foydalanib, siz C++ tezligidan ko’p voz kechmasdan, ilovalarni ancha tezroq yaratishingiz mumkin.
PyQt5 Qt ning eng so’nggi 5 versiyasiga ishora qiladi. Internetda (Py)Qt4 haqida vaqti-vaqti bilan eslatib o’tilishi mumkin, ammo u eski va endi qo’llab-quvvatlanmaydi.
PyQt uchun qiziqarli yangi raqobatchi Python uchun Qt hisoblanadi. Uning API deyarli bir xil. PyQt-dan farqli o’laroq, u LGPL litsenziyasiga ega va shuning uchun tijorat loyihalarida bepul foydalanish mumkin. Bu Qt kompaniyasi tomonidan qo’llab-quvvatlanadi va shuning uchun kelajak. Biz bu erda PyQt dan foydalanamiz, chunki u etukroq. API-lar juda o’xshash bo’lganligi sababli, ilovalarni keyinchalik Python uchun Qt ga osongina o’zgartirishingiz mumkin.
Python-da qaramlikni boshqarishning eng yaxshi usuli bu virtual muhitdir. Virtual muhit shunchaki ma’lum bir loyiha uchun kutubxonalarni o’z ichiga olgan mahalliy katalogdir. Bu kutubxonalarni tizimli o’rnatishdan farqli o’laroq, boshqa barcha loyihalaringizga ham ta’sir qiladi.
Biz yangi papkani yaratishdan boshlaymiz - "Tasvirga ishlov berish". Ushbu papka ichida biz loyiha uchun zarur bo’lgan barcha piktogrammalarni va Python dastur faylini o’z ichiga olgan "belgilar" kabi boshqa papkani yaratamiz - "main.py", u erda loyihaning manba kodini yozamiz.
Belgilar ixtiyoriy va ilovani jozibali qilish uchun ishlatilishi mumkin. Siz o’zingiz xohlagan piktogrammalardan foydalanishi yoki biz ushbu loyihada foydalangan piktogrammalarni o’z ichiga olgan ZIP faylni quyidagi havoladan yuklab olishingiz mumkin: Yuklab olish uchun bu yerni bosing.
Endi biz dastur uchun tuzilmani o’rnatdik, endi "main.py" faylini ochish va kodlash qismini boshlash vaqti keldi. Kontseptsiyani aniq va tushunarli saqlash uchun biz to’liq loyiha kodini turli segmentlarga ajratdik.
Quyida biz loyiha ustida ishlashni tanlaydigan qadamlar mavjud.
1-qadam: Avvalo, loyiha uchun kerakli modul va sinflarni import qilamiz.
2-qadam: Ikkinchidan, dasturning asosiy oynasini yaratamiz.
3-qadam: Keyin biz matn muharriri va konteynerni oynaga qo’shamiz.
4-qadam: Shundan so’ng biz menyular va asboblar panelini yaratamiz.
5-qadam: Nihoyat, biz kerakli usullarni aniqlaymiz va voqea tetikleyicilarini o’rnatamiz.
Keling, ushbu funktsiyalarni batafsil ko’rib chiqaylik.
Loyiha uchun kerakli modul va sinflarni import qilish
Biz PyQt5 modulining turli modullaridan turli sinflar bilan birga sys modulini import qilishdan boshlaymiz.
Keling, xuddi shu narsani ko’rsatadigan quyidagi kod parchasini ko’rib chiqaylik.
Fayl: main.py
Yuqoridagi kod parchasida biz sys modulini import qildik. Keyin biz PyQt5 modulining QtCore, QtWidgets, QtGui va QtPrintSupport modullaridan barcha kerakli sinflarni import qildik.
Biz loyiha uchun barcha kerakli modul va sinflarni muvaffaqiyatli import qildik, endi dasturning asosiy oynasini yaratish vaqti keldi. Biz QMainWindow kichik sinfini yaratamiz va oynaning sarlavhasi, geometriyasi va belgisini sozlash uchun ishga tushirish funksiyasini aniqlaymiz.
Yuqoridagi kod parchasida biz QMainWindow sinfining kichik sinfini aniqladik. Ushbu sinfda biz ba’zi o’zgaruvchilarni standart qiymatlari bilan ishga tushirish uchun ishga tushirish funktsiyasini aniqladik. Biz usullarni ota-ona sinfidan ham meros qilib oldik. Ushbu funktsiya doirasida biz dastur sarlavhasini sozladik va dasturning boshlang’ich kengligi va balandligini aniqladik. Keyin biz oyna belgisini o’rnatdik va dasturning geometriyasini o’rnatish uchun resize() funksiyasidan foydalandik.
Keyin biz yaratgan sinfni yaratdik va natijada paydo bo’lgan oynani ko’rsatish uchun show() usulidan foydalandik. Ilovani yopish uchun biz sys modulining exit() funksiyasidan ham foydalandik.
|
| |