İçindekiler:

GET1033 Python Kodlu Görüntü İşlemcisi: 5 Adım
GET1033 Python Kodlu Görüntü İşlemcisi: 5 Adım

Video: GET1033 Python Kodlu Görüntü İşlemcisi: 5 Adım

Video: GET1033 Python Kodlu Görüntü İşlemcisi: 5 Adım
Video: Bilgisayarlı Görme - Ders 8/b - Arka Plan Çıkarma Yöntemi (Matlab Uygulaması) 2024, Kasım
Anonim
GET1033 Python Kodlu Görüntü İşlemcisi
GET1033 Python Kodlu Görüntü İşlemcisi

Bu proje, GET1033 Hesaplamalı Medya Okuryazarlığını Keşfetmek modülüm için kendi python kodlu görüntü işlemcimi oluşturmakla ilgili. İlk başta, kullanıcının kendi fotoğrafını girmesi ve ardından istediği filtreleri seçmesi gerekecek. Giriş görüntüsünü göster, Ayna, Çubuğun Arkasına Koy, Şeffaf Çubuğun Arkasına Koy, Daire Resmi, Bulanıklaştırma, Döndürme, Rengi Değiştirme ve Photoshop olmak üzere 9 filtre oluşturdum. Bunlardan birini seçtikten sonra, çıktı görüntüsünün etkileri olacaktır. Resimde görüldüğü gibi resimdeki yeşil renkli pikselleri tespit edip pembe renge çevirdiğim renk değiştirme filtresidir.

Adım 1: Yapma Süreci

Yapma Süreci
Yapma Süreci

Adım 1: Python'u buradan indirin!

Adım 2: Kodlayın!

Her şeyden önce, kodda kullanılabilecek önceden kodlanmış işlevi olan birkaç paketi içe aktardım. İçe aktardığım paketler Scipy, Matplot ve Numpy.

Scipy için Çeşitli Rutinler (MISC) ve Çok Boyutlu Görüntü İşleme'yi (NDIMAGE) içe aktardım. MISC, görüntüyü okumak ve kaydetmek içindir, NDIMAGE ise gauss filtresi yapmak ve döndürmek içindir.

Matplotlib için, MATLAB benzeri bir arayüz sağlayan Python'da grafik çizmek için bir kütüphanedir.

Numpy için büyük, çok boyutlu dizileri ve matrisleri destekleyebilen bir kütüphanedir. Numpy önemlidir, çünkü diziyi eklerken veya çarparken görüntülerin Kırmızı, Yeşil ve Mavi (RGB) dizisini verimli bir şekilde düzenlememe olanak tanır. Örneğin, A = [0, 1, 2] ve Numpy'nin varlığında A*2 = [0, 2, 4] yerine A*2 = [0, 1, 2, 0, 1, 2].

Renk Değiştirme filtresi üzerinde çalışırken, kızın yeşil saçlarını pembe renge dönüştürmeye çalışıyorum. Yaptığım şey, resimdeki yeşil renkli pikselleri tespit edip (2, 0.2, 0.8) ile çarpmak oldu. Böylece gerçek yeşil saç yerine pembe saçlı bir kız elde etmiş olacağım.

Photoshop'a gelince, Avengers resmindeki yeşil arka planı bir NUS resmiyle değiştirmeye çalışıyorum. Yani yaptığım tüm yeşil pikselleri 0 ile çarparak NUS resminin piksellerini yeşil piksellere eklemek oldu. Bu bana SUÜ'deki Avengers'ın bir resmini verecek.

Kodumu GitHub'a da ekledim ve buradan indirebilirsiniz!

Adım 2: Nasıl Çalışır?

Nasıl çalışır?
Nasıl çalışır?

Akış şeması, tüm kodun nasıl çalıştığını göstermek için eklenmiştir!

1. İlk olarak, kullanıcıdan istediği bir resmi girmesi istenir. 2. Ardından, kullanıcının seçebileceği filtrelerin listesini gösterecektir. 3. Kullanıcı '1' ile '9' arasını girerse, görüntü her filtreye göre işlenir ve çıktısı alınır.4. Kullanıcı 'R' girdiyse, tüm program sıfırlanacak ve kullanıcıdan tekrar bir resim yüklemesi istenecektir.5. Kullanıcı 'Q' girerse, program döngüden çıkar.

Adım 3: Ne Yapar?

Bu projede oluşturduğum toplam 9 filtre var, yani

1. Giriş görüntüsünü göster - Yüklenen görüntüyü göstermek için

2. Ayna Görüntüsü - Bir nesnenin yansıyan kopyası, ancak yönü tersine çevrilir

3. Barın Arkasına Koy - Genişliği ve aralığı 50 piksele eşit olan siyah dikey çubuklar eklemek.

4. Saydam Çubuğun Arkasına Koy - Genişliği ve aralığı 50 piksele eşit olan şeffaf dikey çubuklar ekleme

5. Daire Resmi - Resmin ortasında daire yapmak için

6. Bulanıklaştırma - Görüntüyü bulanıklaştırmak için

7. Döndürme - Resmi 45 derece döndürmek için

8. Renk Değiştirme - Yeşil rengi pembe renge dönüştürmek için

9. Photoshop - Bir resmin bir bölümünü başka bir resimle değiştirmek için

Adım 4: Neden Yaptım?

Daha önce, Instagram ve Snapchat'in onları bu kadar ilginç kılan resimler için filtreleri nasıl bulduğunu merak ediyorum. Artırılmış Gerçeklik konulu ders ve öğreticiden sonra, bununla ilgili bir şeyler yapmak istedim ama temel olan görüntü işlemeden başlamak istiyorum çünkü programlamada zayıfım ve Python kodlamasını öğrenmek istiyorum.

Adım 5: İyileştirmeler ve Gelecek Sürümler Ne Yapacak?

Bu projedeki iyileştirmelerden biri, Python kullanarak canlı videolarda kendi Yüz Filtrelerimi oluşturmaktır. Bunu kodlamaya çalıştım ama programlama bilgisi eksikliği ve zaman kısıtlaması nedeniyle hiçbirini başaramadım. Bunun dışında görüntü işlemcisi, renkleri otomatik olarak algılayabildiği ve yalnızca istediğimiz parçaları değiştirebildiği 'daha akıllı' olabilir. Bir keresinde bir kişinin siyah saçını başka bir renge çevirmeye çalışıyorum. Sonunda hem göz hem de saç rengini maviye çeviriyorum, bu da resmi çok tuhaf gösteriyor. Umarım kendi yüzümü yaratabilirim

Önerilen: