GET1033 Python kodli tasvir protsessori: 5 qadam
GET1033 Python kodli tasvir protsessori: 5 qadam
Anonim
GET1033 Python kodli tasvir protsessori
GET1033 Python kodli tasvir protsessori

Bu loyiha GET1033 hisoblash vositasi savodxonligini o'rganish moduli uchun o'z python kodli tasvir protsessorini yaratish haqida. Birinchidan, foydalanuvchi o'zi xohlagan fotosuratni kiritishi va keyin kerakli filtrlarni tanlashi kerak bo'ladi. Men 9 ta filtr yaratdim, ular: kirish tasvirini ko'rsatish, ko'zgu, panjara ortiga qo'yish, shaffof qatorga qo'yish, aylana tasviri, xiralashish, aylantirish, rangni o'zgartirish va Photoshop. Ulardan birini tanlagandan so'ng, chiqish tasviri effektlarga ega bo'ladi. Rasmda ko'rsatilgandek, bu rangni o'zgartirish uchun filtr, bu erda men rasmdagi yashil rang piksellarni aniqlayman va ularni pushti rangga aylantiraman.

1 -qadam: uni tayyorlash jarayoni

Uni tayyorlash jarayoni
Uni tayyorlash jarayoni

1 -qadam: Python -ni bu erdan yuklab oling!

2 -qadam: Kod yozing!

Birinchidan, kodda foydalanish uchun oldindan kodlangan funktsiyali bir nechta paketlarni import qildim. Men import qilgan paketlar - Scipy, Matplot va Numpy.

Scipy uchun men har xil tartiblarni (MISC) va ko'p o'lchovli tasvirni qayta ishlashni (NDIMAGE) import qildim. MISC tasvirni o'qish va saqlashga mo'ljallangan, NDIMAGE esa gauss filtrini bajaradi va aylantiradi.

Matplotlib uchun bu Pythonda grafik chizish uchun kutubxona bo'lib, u MATLABga o'xshash interfeysni ta'minlaydi.

Numpy uchun bu katta, ko'p o'lchovli massivlar va matritsalarni qo'llab-quvvatlaydigan kutubxona. Numpy muhim, chunki bu menga qatorni qo'shganda yoki ko'paytirganda tasvirlarning qizil, yashil va ko'k (RGB) qatorini samarali tahrir qilishga imkon beradi. Masalan, A = [0, 1, 2] va Numpy ishtirokida A*2 = [0, 1, 2, 0, 1, 2] olish o'rniga A*2 = [0, 2, 4]..

Men "Rangni o'zgartirish" filtri ustida ishlayotganimda, qizning yashil sochlarini pushti rangga o'zgartirishga harakat qilaman. Shunday qilib, men rasmdagi yashil rang piksellarni aniqlab, ularni (2, 0,2, 0,8) bilan ko'paytirishni qildim. Shunday qilib, men haqiqiy yashil sochlar o'rniga pushti sochli qizni olaman.

Photoshop -ga kelsak, men Avengers rasmidagi yashil fonni NUS tasviri bilan almashtirishga harakat qilaman. Shunday qilib, men barcha yashil piksellarga 0 ni ko'paytirdim va keyin yashil piksellarga NUS rasmining piksellarini qo'shdim. Bu menga NUSda Qasoskorlarning rasmini beradi.

Men o'z kodimni GitHub -ga biriktirdim va uni bu erdan yuklab olishingiz mumkin!

2 -qadam: Bu qanday ishlaydi?

U qanday ishlaydi?
U qanday ishlaydi?

Butun kod qanday ishlashini ko'rsatish uchun oqim sxemasi biriktirilgan!

1. Birinchidan, foydalanuvchiga tanlangan rasmni kiritish taklif qilinadi. 2. Keyin u foydalanuvchini tanlashi mumkin bo'lgan filtrlar ro'yxatini ko'rsatadi. 3. Agar foydalanuvchi '1' dan '9' gacha kirgan bo'lsa, tasvir qayta ishlanadi va har bir filtr bo'yicha chiqariladi.4. Agar foydalanuvchi "R" ni kiritgan bo'lsa, butun dastur asl holatiga qaytariladi va foydalanuvchidan yana rasm yuklash so'raladi. Agar foydalanuvchi "Q" ni kiritgan bo'lsa, dastur aylanadan chiqadi.

3 -qadam: Bu nima qiladi?

Ushbu loyihada men yaratgan jami 9 ta filtr mavjud

1. Kirish tasvirini ko'rsatish - yuklangan rasmni ko'rsatish uchun

2. Ko'zgu tasviri - ob'ektning aks ettirilgan takrorlanishi, lekin yo'nalishda teskari

3. Barning ortiga qo'ying - kengligi va oralig'i 50 pikselga teng bo'lgan qora vertikal chiziqlar joylashtiring.

4. Shaffof panjara ortiga qo'ying - kengligi va oralig'i 50 pikselga teng bo'lgan shaffof vertikal chiziqlar joylashtiring

5. Doira tasviri - rasm markazida aylana yasash

6. Xiralashtirish - tasvirni xiralashtirish uchun

7. Burilish - tasvirni 45 gradusga burish uchun

8. Rangni o'zgartirish - yashil rangni pushti rangga o'zgartirish

9. Photoshop - rasmning bir qismini boshqa rasm bilan o'zgartirish uchun

4 -qadam: Nega men bunga erishdim?

Ilgari, men Instagram va Snapchat -ning rasmlarni filtrini qanday yaratganligi qiziqtirgan. "Kengaytirilgan haqiqat" bo'yicha ma'ruza va darslardan so'ng, men u bilan bog'liq biror narsa qilishni xohlardim, lekin tasvirni qayta ishlashdan boshlamoqchiman, chunki men dasturlashda zaifman va Python kodlashni o'rganmoqchiman.

5 -qadam: Yaxshilashlar va kelajakdagi versiyalar nima qiladi?

Ushbu loyihaning yaxshilanishlaridan biri bu Python yordamida jonli videolarda o'z yuz filtrlarimni yaratishdir. Men buni kodlashga harakat qildim, lekin dasturlash bilimining etishmasligi va vaqt cheklovlari tufayli ulardan hech biriga erisha olmadim. Bundan tashqari, tasvir protsessori "aqlli" bo'lishi mumkin, u erda ranglarni avtomatik ravishda aniqlay oladi va biz xohlagan qismlarni o'zgartiradi. Bir paytlar men odamning qora sochini boshqa rangga o'zgartirmoqchi bo'laman. Men nihoyat ko'zni ham, sochni ham ko'k rangga o'zgartirib, rasmni juda g'alati qilib ko'rsataman. Umid qilamanki, men o'z yuzimni yaratishga qodirman