Sizin gibi okuyucular MUO'yu desteklemeye yardımcı oluyor. Sitemizdeki bağlantıları kullanarak bir satın alma işlemi gerçekleştirdiğinizde, bir ortaklık komisyonu kazanabiliriz. Devamını oku.

Güzel bir eskiz yapmak çok zaman ve çaba gerektirir. Şans eseri, programlama gelişti, böylece artık görüntüleri kolayca dönüştürebilir ve güzel tasarımlar yaratabilirsiniz. Gerçekleştirebileceğiniz etkileyici bir teknik, bir görüntüyü dijital eskiz haline dönüştürmektir.

Mekanik bir eskiz tam olarak kendi kalem çiziminiz gibi görünmese de, çıktı yine de denemeye değer. Süper dostu Python dilinde OpenCV modülünü kullanarak böyle bir uygulamayı nasıl programlayacağınızı öğrenin.

OpenCV Modülü

OpenCV, görüntü işleme ve bilgisayarla görü için kullanılan Intel tarafından geliştirilmiş ve sürdürülen açık kaynaklı bir bilgisayar görü yöntemleri kitaplığıdır. Kullanıcıların optimize edilmiş uygulamalar oluşturmasını, resimler ve videolarla gerçek zamanlı etkileşim kurmasını ve ihtiyaçları için ideal algoritmayı seçmesini kolaylaştırır.

instagram viewer

Popüler uygulamalardan bazıları OpenCV, yüz algılamayı içerir, sinematografide otomatik yüz takibi, sosyal medya filtreleri, araba plaka tanımave CCTV izleme. OpenCV modülünü Python'da kullanmak için terminalinizi açın ve aşağıdaki komutu yazın:

pip kurulumu opencv-python

Python Kullanarak Herhangi Bir Görüntüyü Taslağa Dönüştürme

En sevdiğiniz görüntüyü dijital bir taslağa dönüştürmek için, kolay başvuru için onu yeni bir Python programıyla aynı klasöre yerleştirerek başlayın. Ardından, aşağıdaki adımları kullanarak programınızı oluşturmaya başlayın.

Bu örnek kod bir GitHub deposu ve MIT Lisansı kapsamında kullanımınız ücretsizdir.

İlk adım, OpenCV modülünü ortamınıza aktarmaktır. OpenCV kullanıma sunulduğunda, çeşitli görevleri gerçekleştirmek için işlevselliğini kullanabilirsiniz. Görüntü dosyanızın yolunu imread() yüklemek için işlev. Resminizi bir değişkende saklayın; resim1 burada—ileride başvurmak için.

Pencerenin başlığını adlı bir değişkende saklayın. pencere_adı. kullanarak görüntüyü görüntülemeyi seçtiğinizde bu yararlı olacaktır. gösteri() işlev. Bu işlev iki parametre gerektirir: görüntülemek istediğiniz başlık ve resim.

içe aktarmak CV2

resim1 = cv2.imread('resim.jpg')
pencere_adı = "Gerçek görüntü"
cv2.imshow (pencere_adı, resim1)

İstediğiniz görüntüyü elde ettiğinizde, onu bir taslağa dönüştürmek için beş işlem gerçekleştirmeniz gerekir. İlk olarak, renkli görüntüyü gri tonlamaya dönüştürün. ile yapabilirsiniz cvtColor() işlev. Bu işlev, renklerini değiştirmek istediğiniz görüntüyü ve aşağıdaki gibi bir dönüştürme kodunu alır. RENK_BGR2GRİ.

grey_img = cv2.cvtColor (resim1, cv2.COLOR_BGR2GRAY)

Gri tonlamalı bir görüntünüz olduğunda, renklerini ters çevirin. Bu noktada, bir bilgisayarın bir görüntüyü nasıl oluşturduğunu anlamanız gerekir. Bir görüntü, değişen yoğunluklara sahip birçok küçük pikselden oluşur. Renkli bir görüntüde, her piksel, her birinin yoğunluğu 0 ile 255 arasında değişen kırmızı, yeşil ve mavi bileşenleri içerir.

Gri tonlamalı bir görüntüde yalnızca grinin tonları vardır, bu nedenle bir pikselin yoğunluğu 0 ile 1 arasında değişir. Bu görüntünün piksel yoğunluklarını tersine çevirmek için gri tonlamalı görüntüyü bitwise_not() işlev.

Adından da anlaşılacağı gibi, bu işlev her pikselin değerini tamamlayıcı eşdeğerine ters çevirir. 0'dan büyük olan tüm pikseller 0'a ve 0'a eşit olan tüm pikseller 255'e ayarlanır.

ters çevir = cv2.bitwise_not (grey_img)

Piksel yoğunluklarını ters çevirdikten sonra Gaussian Blur yardımıyla görüntüyü yumuşatabilirsiniz. Gauss Bulanıklığı işlemi, bir Gauss filtresi kullanır. Gauss filtresi, bir sinyalin veya görüntünün yüksek frekanslı bileşenini kaldırarak yalnızca düşük frekansların geçmesine izin veren düşük geçişli bir filtredir.

OpenCV'ler GaussBulanıklığı() işlev dört parametre kabul eder. Bunlar, kaynak görüntü olarak işlev gören bir matris nesnesi, ksize (çekirdeğin boyutu) ve sigmaX'tir (Gauss çekirdeği standart sapması).

Diyelim ki elinizde fiziksel bir fotoğraf var. Bulanıklaştırmak istiyorsanız, üzerine balmumu veya parşömen kağıdı uygulayabilirsiniz. Çekirdeği bu şeffaf kağıt parçası olarak hayal edebilirsiniz. Dijital olarak, bu biraz farklı gerçekleşir. Dijital bir görüntüyü bulanıklaştırmak, keskinleştirmek ve diğer efektleri uygulamak için, bir matrisi görüntünün piksellerinin yoğunluğuyla çarparsınız.

ksize her zaman pozitif bir tek sayıdır. Çekirdek boyutunu artırdıkça bulanıklık artar. sigmaX'i anlamak için bir kağıda mum uyguladığınızı varsayalım. Balmumu uyguladığınızda, kağıt eşit şekilde yarı saydam hale gelir. Aynı şekilde kernel değerlerini de belirli bir noktaya (ortalama) yakın tutmalısınız. SigmaX değeri, bir görüntüdeki piksellerin ortalama ve diğer değerleri arasındaki farkı tanımlar.

Tersine çevrilmiş görüntüyü, çekirdek boyutunu (21, 21) olarak ve 0 standart sapmayı Gauss Bulanıklığı işlevine iletin:

blur = cv2.GaussianBlur (ters çevir, (21, 21), 0)

Bulanık görüntüyü ters çevirmek için tekrar bitwise_not() işlevine iletin:

ters bulanıklık = cv2.bitwise_not (bulanıklık)

Son olarak, bölmek() işlevi ve gri tonlamalı görüntü dizisinin ve ters bulanık görüntü dizisinin 256 ölçeğiyle öğe başına bölünmesini gerçekleştirmek.

sketch = cv2.divide (grey_img, ters bulanıklık, ölçek=256.0)

Esasen işlev aşağıdaki işlemi gerçekleştirir:

kesinliklebölmek(grey_img, b, ters bulanıklık=256.0):
geri dönmek (grey_img * ölçek) / ters bulanıklık

Sonucu sketch adlı bir değişkende saklayın. Nihai görüntüyü kaydetmek için çıktı dosyanız ve çizim görüntüsü için bir ad verin. imwrite() işlev. Bunu doğrulamak için imread() işlevini kullanarak kaydedilen çizim görüntüsünü yükleyebilir, bir pencere başlığı verebilir ve imshow() işlevini kullanarak görüntüleyebilirsiniz.

Kullan bekleme tuşu() herhangi bir tuşa basana kadar orijinal görüntü penceresini ve oluşturulan çizim penceresini görüntülemek için 0'ı geçerek işlev.

cv2.imwrite("taslak.jpeg", eskiz)
resim = cv2.imread("taslak.jpeg")
pencere_adı ="Resim taslağı"
cv2.imshow (pencere_adı, resim)
cv2.waitKey(0)

Tüm kodu bir araya getirin ve programınız hazır.

Bu Python Programını Kullanarak Bir Görüntüyü Taslağa Dönüştürmenin Örnek Çıktısı

Güzel bir manzara resmi seçebilir ve bu çarpıcı dijital taslağı oluşturmak için onu programda çalıştırabilirsiniz.

Bir portre görüntüsünde, program aşağıdaki dijital taslağı oluşturur.

İstediğiniz dijital çizimi oluşturmak için beğeninize göre fonksiyonun parametrelerini deneyebilirsiniz.

Görüntü İşleme ve Bilgisayarla Görü

Görüntü işleme ve bilgisayarla görme, birbiriyle yakından ilişkili iki teknoloji alanıdır. Her ikisi de istenen sonuçları elde etmek için dijital görüntüleri değiştirmeyi içerir. Görüntü işleme, bir resmi iyileştirmeye odaklanırken, bilgisayar görüşü, onu anlamak için bir görüntü içindeki kalıpları ve nesneleri bulmaya çalışır.

Scikit-image, çok çeşitli görüntü işleme işlevleri sağlayan başka bir Python kitaplığıdır. Birkaç önceden derlenmiş modül, filtre, katman, dönüşüm ve daha fazlasına sahiptir. CNN ve RNN gibi derin öğrenme modelleri için kullanılacak bir modül arıyorsanız, Torchvision'u keşfetmek isteyebilirsiniz.