Sadržaj:

GET1033 Procesor kodirane slike Python: 5 koraka
GET1033 Procesor kodirane slike Python: 5 koraka

Video: GET1033 Procesor kodirane slike Python: 5 koraka

Video: GET1033 Procesor kodirane slike Python: 5 koraka
Video: CS50 2013 - Week 1, continued 2024, Studeni
Anonim
GET1033 Procesor kodirane slike Python
GET1033 Procesor kodirane slike Python

Ovaj projekt govori o stvaranju vlastitog procesora slike kodiranog pythonom za moj modul, GET1033 Istraživanje računalne medijske pismenosti. U početku će korisnik morati unijeti vlastitu fotografiju, a zatim odabrati filtre koje želi. Napravio sam 9 filtera koji su: Prikaz ulazne slike, Ogledalo, Stavi iza trake, Stavi iza prozirne trake, Slika kruga, Zamućenje, Rotacija, Promjena boje i Photoshop. Nakon što odaberete jedan od njih, izlazna slika imat će učinke. Kao što je prikazano na slici, to je filter za promjenu boje gdje detektiram piksele zelene boje na slici i pretvaram ih u ružičastu boju.

Korak 1: Proces stvaranja

Proces stvaranja
Proces stvaranja

Korak 1: Preuzmite Python odavde!

Korak 2: Kodirajte ga!

Prije svega, uvezao sam nekoliko paketa s unaprijed kodiranom funkcijom dostupnom za korištenje u kodu. Paketi koje sam uvezao su Scipy, Matplot i Numpy.

Za Scipy sam uvezao razne rutine (MISC) i višedimenzionalnu obradu slika (NDIMAGE). MISC služi za čitanje i spremanje slike, dok je NDIMAGE za izvođenje gausovog filtra i zakretanje.

Za Matplotlib, to je knjižnica za iscrtavanje grafa u Pythonu koja pruža sučelje nalik MATLAB-u.

Za Numpy je to knjižnica koja može podržati velike, višedimenzionalne nizove i matrice. Numpy je važan jer mi omogućuje učinkovito uređivanje niza crvenih, zelenih i plavih (RGB) slika kada dodajem ili množim niz. Na primjer, A = [0, 1, 2] i uz prisutnost Numpyja, A*2 = [0, 2, 4] umjesto dobivanja A*2 = [0, 1, 2, 0, 1, 2].

Kad radim na filteru za promjenu boje, pokušavam pretvoriti zelenu kosu djevojčice u ružičastu boju. Dakle, ono što sam učinio je otkrilo piksele zelene boje na slici i pomnožilo ih s (2, 0.2, 0.8). Tako ću umjesto prave zelene kose dobiti djevojku ružičaste kose.

Što se tiče Photoshopa, pokušavam zelenu pozadinu na slici Avengers zamijeniti slikom NUS -a. Dakle, ono što sam učinio je množenje 0 na sve zelene piksele, a zatim dodavanje piksela slike NUS -a u zelene piksele. Tada ću dobiti sliku Osvetnika u NUS -u.

Priložio sam i svoj kôd na GitHub i možete ga preuzeti ovdje!

Korak 2: Kako to funkcionira?

Kako radi?
Kako radi?

Dijagram toka je priložen kako bi pokazao kako cijeli kôd radi!

1. Prvo se od korisnika traži da unese sliku po izboru. 2. Tada će se prikazati popis filtara koje korisnik može birati. 3. Ako je korisnik unio '1' do '9', slika će se obraditi i ispisati prema svakom filtru.4. Ako je korisnik unio 'R', cijeli će se program poništiti i od korisnika će se tražiti da ponovo učita sliku.5. Ako je korisnik unio 'Q', program će tada izaći iz petlje.

Korak 3: Što radi?

U ovom projektu postoji ukupno 9 filtera koje sam stvorio, naime

1. Prikaži ulaznu sliku - Za prikaz slike koja se učitava

2. Zrcalna slika - Reflektirano dupliciranje objekta, ali je obrnuto u smjeru

3. Stavi iza trake - Umetanje crnih okomitih traka širine i razmaka jednakih 50 piksela.

4. Stavite iza prozirne šipke - Umetanje prozirnih okomitih šipki širine i razmaka jednakih 50 piksela

5. Slika kruga - Za stvaranje kruga u sredini slike

6. Zamućivanje - Za zamućivanje slike

7. Rotacija - Za rotiranje slike za 45 stupnjeva

8. Promjena boje - Za promjenu zelene boje u ružičastu

9. Photoshop - Za promjenu dijela slike drugom slikom

Korak 4: Zašto sam uspio?

Ranije me zanimalo kako su Instagram i Snapchat došli do filtera za slike koji su ih učinili tako zanimljivima. Nakon predavanja i vodiča o proširenoj stvarnosti htio sam učiniti nešto u vezi s tim, ali htio bih krenuti od osnove, a to je obrada slika jer sam slab u programiranju i želio bih naučiti Python kodiranje.

Korak 5: Poboljšanja i što će učiniti buduće verzije?

Jedno od poboljšanja ovog projekta je stvaranje vlastitih filtera za lice u video zapisima uživo pomoću Pythona. Pokušao sam to kodirati, ali nisam uspio postići ništa zbog nedostatka znanja o programiranju i vremenskog ograničenja. Osim toga, procesor slike može biti 'pametniji' gdje može automatski detektirati boje i promijeniti samo dijelove koje želimo. U jednom trenutku pokušavam promijeniti crnu kosu neke osobe u drugu boju. Na kraju sam promijenio boju očiju i kose u plavu što sliku čini vrlo čudnom. Nadam se da ću uspjeti stvoriti vlastito lice

Preporučeni: