logo

OpenCV - Python kullanarak bir görüntüyü çizgi film

Bir görüntünün karikatürünü yapmak normal bir fotoğrafı eğlenceli bir animasyon tarzı resme dönüştürür. OpenCV ile bunu, renkleri basitleştirmek için görüntüyü düzelterek ve ana hatlar oluşturmak için kenarları algılayarak yaparız. Bu adımları birleştirmek fotoğrafı bir çizgi film gibi gösteriyor.

Önkoşul:  OpenCV modülü

Yaklaşmak

  • Giriş görüntüsünü okuyun.
  • Kenar algılama için görüntüyü gri tonlamaya dönüştürün.
  • Gürültüyü gidermek için medyan bulanıklık uygulayın.
  • Kenarları tespit etmek için uyarlanabilir eşik kullanın.
  • Kenarları korurken görüntüyü yumuşatmak için iki taraflı bir filtre uygulayın.
  • Karikatür etkisini üretmek için düzgün görüntüyü kenarlarla birleştirin.

Python uygulaması

Python
import cv2 img = cv2.imread('Screenshot.webp') if img is None: print('Image not found') exit() # Prep grayscale & blur g = cv2.cvtColor(img cv2.COLOR_BGR2GRAY) g = cv2.medianBlur(g 5) # Edges e = cv2.adaptiveThreshold(g 255 cv2.ADAPTIVE_THRESH_MEAN_C cv2.THRESH_BINARY 9 9) # Smooth color c = cv2.bilateralFilter(img 9 250 250) # Combine cartoon = cv2.bitwise_and(c c mask=e) cv2.imshow('Cartoon' cartoon) cv2.imwrite('cartoon_output.webp' cartoon) cv2.waitKey(0) cv2.destroyAllWindows() 

Çıktı:



İnput_image' title=Orijinal Resim ' loading='lazy' title=Karikatür Çıktı Görüntüsü

Açıklama:

  • cv2.cvtcolor () Kenar algılama için görüntüyü gri tonlamaya dönüştürür.
  • CV2.medianBlur () temiz kenarlar için gürültüyü kaldırır.
  • CV2.Adaptivetheshold () Eskiz benzeri bir etki veren kenarları tespit eder.
  • CV2.bilateralFilter () S Kenarları keskin tutarken renkleri renklendirir.
  • cv2.bitwise_and () Karikatür efekti için düzeltilmiş renkleri ve kenarları birleştirir.