Tekrar hoş geldiniz.
Nasıldı?
Zor muydu?
Umarım işi biraz zorlaştırdığım için benden nefret etmezsiniz ama bu iyi bir şey olacak.
Ve unutmayın, eğer hemen alamadıysanız, bu büyük bir sorun değildir.
Bu şekilde öğreniyoruz.
Bunu biraz daha büyütelim.
Al bakalım.
İlk adımımızla başlayalım ve kullanmamız gereken bu iki argümanı alalım.
Peki bunu nasıl yapabiliriz?
Yapacağımız ilk şey, görüntülerimizin ilk yolu olan path diyelim.
Ya da şöyle diyelim.
Resim.
Klasör.
Ve bu görüntü klasörü argümanlar olan cis dot arc v'yi kullanacak ve arc v'nin python dosyası olan ilk dosya
olduğunu hatırlayın.
Bu ikinci ve bu da üçüncü.
Programlamanın çalışma şekli, sıfırla başlarız, sonra bir, sonra iki.
Peki ne diyeceğiz?
Bizim V burada mı?
Peki ikincisi için çıktı hangisi?
Klasör.
Altı nokta yay v olacak.
İki.
Bu yüzden her zaman yaptıklarımızı test etmeyi severim çünkü varsayımlarımızın doğru olduğundan emin olmak isteriz.
O zaman sadece resmi basalım.
Klasör ve çıktı klasörü.
Ve bu dosyayı çalıştıralım.
Pekala, şuna bak.
Pokédex ve yeni bir şey alacağız.
Bu işe yarıyor gibi görünüyor.
Harika.
Böylece ilk görevi yerine getirdik.
Peki ya ikincisi?
İkincisi, bu yeni klasörün var olup olmadığını kontrol etmektir.
Değilse, buraya resim koymak için kullanabilmemiz için onu oluşturmamız gerekir.
Yani yine, bu bir if ifadesi gibi görünüyor.
Bu yüzden eğer diyeceğim.
Ve sonra klasörün var olup olmadığını kontrol edin.
Bunu yapabilmemizin yolu OSS modülünü kullanmaktır.
Artık kullanabileceğiniz path lib modülü de var.
Bu tamamen size kalmış.
Şimdi oranlarla birlikte.
Yapabileceğimiz şey, o'nun nokta yolu noktasının var olduğunu söylemektir.
Ve bu sadece kontrol edecek, hey, bu var mı?
Bu yüzden çıktı klasörü diyeceğim.
Böyle bir şey var mı?
Şimdi bunun çıktısının ne olduğunu görelim.
Bu yüzden if deyimini tekrar yapmadan önce kodumu test etmeyi seviyorum, bu yüzden şöyle diyeceğim.
Eğer O'nun yolu varsa.
Ya da özür dilerim.
Yazdırmak istiyorsak yerine bunu çalıştıralım.
Ve yanlış anladık.
Neden yanlış?
Çünkü öyle bir şey yok.
Yani if deyimimizin çalışması için aslında bunu yapmamız gerekiyor.
"Eğer" demeliyiz.
Tersini doğru yapmak istediğimiz için değil.
Eğer böyle bir şey yoksa, bunu true değerine dönüştürmek istiyoruz ki bu blok içinde klasörü oluşturmak
için bir şeyler yapabilelim.
Peki bunu nasıl yapabiliriz?
Bir kez daha, OSS modülünü kullanıyoruz ve make dirs veya make directory yöntemini kullanıyoruz ve ona sadece dizin
çıktı klasörünü veriyoruz.
Şimdi tekrar kodumuzu test edelim.
Ve eğer bunu çalıştırırsam.
Şuna bak.
Yeni bir klasörümüz var.
Harika.
Ve bu şekilde, bu kodu tekrar çalıştırırsam, başka bir klasör oluşturmadığımızı görürüz çünkü sadece
bunu kontrol ediyoruz.
Ve bu klasör şu anda mevcut olduğu için, çoğaltıp başka bir klasör oluşturmayacağız.
Harika.
Adım adım ilerleme kaydediyoruz.
Ve yine kendinize soruyor olabilirsiniz, dur bakalım Andre.
Make Ders'i hiç öğrenmedim.
Bunu nasıl yapacağım?
Ve yine, bu sadece modelin ne yaptığına baktığınız ve Google'da araştırdığınız ve işleri bu şekilde çözdüğünüz yerde
pratik yapmanız gereken bir şeydir.
Hiç kimse bir programcı olarak bir şeyleri ezberleyemez.
Benden nefret etme.
Ben sadece o kası çalıştırmana yardım ediyorum.
Pekala, son bölüm.
Son kısım, pokédex'te döngü yapmak, her resmi almak ve dönüştürmek ve yeni klasöre kaydetmektir.
Peki bunu nasıl yapabiliriz?
Peki, bir for döngüsü yapacağız ve dosya adını gireceğiz ve sonra tekrar OS nokta listesi dizinini kullanacağız.
Ve bu da dizindeki öğeler olacak.
Bu yüzden list dir ile yapabileceğimiz şey sadece görüntü klasörünü vermektir.
Ve burada şimdi bu dosya yollarının her birine sahibiz.
Şimdi burada görüntü eşittir görüntü nokta açık diyebilirim.
Peki burada ne yapmalıyız?
Çünkü unutmayın, bunu her seferinde açacağız, değil mi?
Ve bu JPEG to PNG dosyası bu klasörlerin dışında.
Yani bir şekilde açmamız gerekiyor.
Bu resimler pokédex'te.
Ancak unutmayın, girdi ne olursa olsun kullanmak istiyoruz çünkü klasör pokédex'i her zaman aynı olmayabilir.
Bu yüzden Pokédex klasörünü almak yerine, sadece bir SW dizesi kullanacağız.
Ve bu dizenin içinde şunu istediğimizi söyleyeceğim.
Resim.
Klasör.
Bu da bize pokédex eğik çizgisini ve buradaki eğik çizgiyi verecek, çünkü kullanıcının eğik çizgiyi gireceğini varsayıyoruz,
onu buraya dahil etmek zorunda değiliz ve sonra dosya olacak başka bir dize vereceğiz.
İsim.
Buradan alıyoruz.
Şimdi bu görüntüleri, her birini açıyoruz ve sonra onları dönüştürebiliyoruz, değil mi?
Öyleyse bunları görüntü, nokta kaydet diyerek dönüştürelim.
Ve bir kez daha, bir F dizesi kullanacağız ve aynı şeyi yapacağız, ancak bu sefer çıktı klasörü
için.
O yüzden şöyle diyeceğim.
Çıktı klasörü.
Ver şunu.
Dosya adı.
Ve sonra virgül ve sonra Pag'a dönüştürün.
Ve sadece eğlence olsun diye, bir görüntü her işlendiğinde tamamını yazdırdığımızı bilmemiz için tamamını yazdır
diyelim.
Şimdi bu kodu çalıştırmayı deneyeceğiz.
Aslında bu kodda düzeltmemiz gereken bir hata var, ancak ne olacağını görelim.
Bunu çalıştıracağım.
Ve işte başlıyoruz.
Hepimiz yaptık, hepimiz yaptık, hepimiz yaptık.
Dört resim ve doğru çalışmış gibi görünüyor.
Bir göz atalım.
Eğer buradaki yeni klasöre gidersem.
Hmm.
Görünüşe göre bunlar hala JPEG'lerde.
Bu çok garip.
Bu neden olabilir ki?
Bunları dönüştürmemiz gerektiğini düşündüm.
Doğru.
Peki ya burada kaydetme işlemi bir nokta, p ve g yaparsa?
Bu yüzden tekrar, bunu biraz daha küçültelim.
Bu yüzden P&G'yi dosya biçiminde kaydet diyeceğiz, P&G eğer bunu çalıştırırsam.
Tamam.
Şuna bak.
Artık görüntüler elimizde ama.
Oh, var.
Nokta jpeg, nokta pag.
Burada neler oluyor?
Adımızı temizlemek zorundayız.
Doğru.
Yani yapmamız gereken şey.
Açık görüntüyü yakaladığımız zamandır.
P ve g olarak kaydedebilmek için bu görüntüden nokta jpeg'i kaldırmamız gerekir.
Peki bunu nasıl yapabiliriz?
Ve bu Google'da aramanız gereken bir şey olabilir, çünkü aslında bunu yapmamızı sağlayan OS modülü
ile kullanabileceğimiz kullanışlı bir araç var.
Yani yapabileceğimiz şey, temiz diyebiliriz.
İsim ve O'nun nokta yolu diyeceğiz.
Nokta bölmeli metin.
Ve bunun yapacağı şey metni bizim için bölmek olacak.
Sana göstereyim.
Dosya adı diyeceğim.
Ve burada, hiçbir şeyi kurtarmayacağım.
Bunu yorumlayacağım.
Ve ben sadece temiz bir isim yazdırmak istiyorum.
Şimdi metni bölmenin ne işe yaradığını görelim.
Bunu temizleyip kaçacağım.
Tekrar.
Oh, ve burada fazladan bir çayım var.
Bölünmüş metin olmalı.
Tekrar söyleyelim.
Ve şuna bak.
Bana metni ad ve uzantı arasında bölen bir tuple verir.
Bu son derece faydalı.
Bu yüzden sadece bu ilk kısmı tutmamız gerekiyor ve bu kısmı önemsemiyoruz, böylece sıfır
diyerek temiz isme erişebiliriz.
Yani çiftteki ilk öğe.
Şimdi buna geri dönersem ve finally yerine, görüntüyü kaydetmek için temiz adı kullanırız.
Bu işe yaramalı.
Bu yüzden buradaki bazı yorumları kaldırmama izin verin.
Yapmak istediğim bir başka şey de tüm bu resimleri kaldırmak istiyorum çünkü artık onlara ihtiyacımız yok.
İdeal olarak sadece P&G görsellerimiz var, bu yüzden aslında bu yeni klasörü kaldıracağım.
Sil diyelim.
Tamam.
Silebilirsiniz.
Al bakalım.
Saklayacağım.
Bakalım şimdi işe yarayacak mı?
Komutumuzu çalıştıralım.
Hepsi tamam.
Eğer geri dönersek.
Hey, şuna bak.
Tüm resimlerimiz artık PNG.
Ve bunun ne kadar hızlı olduğunu gördünüz.
İlk JPEG'den PNG'ye dönüştürücümüzü yeni oluşturduk.
Bu dosya artık ona bir klasör verdiğiniz sürece dönüşebilir.
Yüzlerce görüntü, binlerce JPEG görüntü verebilirsiniz ve bunları PNG'ye dönüştürecektir.
İsterseniz, onları yeniden boyutlandırabilirsiniz bile.
Hatta bunlara görüntü filtreleri bile ekleyebilirsiniz.
Ve tüm bunları birkaç satır Python kodu ve bazı faydalı kütüphanelerle yapabiliyoruz.
Çok, çok havalı.
Şimdi burada sadece yüzeyi çiziyoruz, ancak Python'un gücünü görmeye başlıyorsunuz.
Bir sorunumuz var.
Ve bu sorun Python ve kütüphaneleri ile çözülebilir.
Biraz Google'da arama yaparak, biraz deneme yanılma yöntemiyle ve kodumuzda hata ayıklayarak, bize potansiyel
olarak çok zaman kazandırabilecek bir şey yaptık.
Bunu manuel olarak yapmak yerine.
Buraya kadar gelebildiysen iyi iş çıkardın.
Bu bizim ilk görüntü işleme projemiz.
Umarım heyecanlısındır.
Daha anlatacak çok şey var.
Ama sırtınızı sıvazlayın ve bir sonraki videoda görüşmek üzere.
Güle güle.