Python imutils Kütüphanesi Nedir? Kurulum ve Kullanım Örnekleri

imutils, Python’daki OpenCV görüntü işleme kütüphanesini kullanırken sıkça ihtiyaç duyduğunuz bazı temel ve yararlı işlevleri basit bir şekilde sağlamayı amaçlayan bir kütüphanedir.

OpenCV, görüntü işleme alanında çok sayıda güçlü özellik sunar, ancak bu özelliklerin çoğu oldukça karmaşık ve ayrıntılı işlev çağrıları gerektirir. imutils, bu karmaşıklığı azaltarak ve sıkça kullanılan işlemleri basitleştirerek görüntü işleme süreçlerini daha verimli hale getirir.

Örneğin, bir imutils işlevi ile bir görüntünün boyutunu değiştirmek, açmak veya kapamak, döndürmek, sınırlayıcı kutu çizmek ve hatta video akışını kolayca göstermek gibi işlemleri hızlı ve kolay bir şekilde gerçekleştirebilirsiniz.

imutils, daha az kod yazarak daha fazla işlem yapmanıza olanak tanır ve bu nedenle özellikle görüntü işleme projelerinde zaman kazandırabilir.

imutils Kütüphanesi Nasıl Kurulur?

Kütüphaneyi kurmak için şu adımları izleyebilirsiniz:

pip install imutils

imutils Kütüphanesi Kullanımı

Şimdi imutils kütüphanesinin nasıl kullanılacağını öğrenelim. Aşağıdaki örnekte, basit görüntü işlemleri gerçekleştireceğiz:

import cv2
import imutils

# Resmi yükle
image = cv2.imread('resim.jpg')

# Boyutu yeniden boyutlandır
image = imutils.resize(image, width=500)

# Resmi döndür
image = imutils.rotate(image, angle=45)

# Sınırlayıcı kutu oluşturma
(x, y, w, h) = (50, 50, 100, 100)
cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)

# Ekranda resmi gösterme
cv2.imshow('Görüntü', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Bu örnekte şunları yaptık:

  1. Resmi yükledik ve OpenCV’yi kullanarak gösterdik.
  2. imutils ile resmi boyutlandırdık ve döndürdük.
  3. Sınırlayıcı kutu çizdik ve son görüntüyü gösterdik.

Şimdi imutils‘in bazı temel özelliklerini daha ayrıntılı olarak inceleyelim.

İmutils Kütüphanesinde Resimleri Yeniden Boyutlandırma

imutils.resize() fonksiyonu ile resimleri kolayca yeniden boyutlandırabilirsiniz. Örneğin:

import cv2
import imutils

# Resmi yükle
image = cv2.imread('resim.jpg')

# Yeniden boyutlandırma
yeni_genişlik = 300
image_yeni = imutils.resize(image, width=yeni_genişlik)

# Yeniden boyutlandırılmış resmi gösterme
cv2.imshow('Yeniden Boyutlandırılmış Görüntü', image_yeni)
cv2.waitKey(0)
cv2.destroyAllWindows()

İmutils Kütüphanesinde Resim Dönüştürme

imutils.rotate() fonksiyonu ile resimleri istediğiniz açı kadar döndürebilirsiniz. Örneğin:

import cv2
import imutils

# Resmi yükle
image = cv2.imread('resim.jpg')

# 45 derece döndürme
dönüş_ açısı = 45
image_dönmüş = imutils.rotate(image, angle=dönüş_ açısı)

# Döndürülmüş resmi gösterme
cv2.imshow('Döndürülmüş Görüntü', image_dönmüş)
cv2.waitKey(0)
cv2.destroyAllWindows()

İmutils Kütüphanesinde Sınırlayıcı Kutu Çizme

Sınırlayıcı kutular çizmek için OpenCV’nin rectangle() fonksiyonunu kullanabilirsiniz. Örneğin:

import cv2
import imutils

# Resmi yükle
image = cv2.imread('resim.jpg')

# Sınırlayıcı kutu koordinatları
y_konum = 50  # Y koordinatı
gx_konum = 50  # X koordinatı
genişlik = 100  # Genişlik
# Yükseklik = 100  # Yükseklik

# Sınırlayıcı kutuyu çizme
detik_görüntü = cv2.rectangle(image, (x_konum, y_konum), (x_konum + genişlik, y_konum + yükseklik), (0, 255, 0), kalınlık=2)

# Sınırlayıcı kutulu resmi gösterme
cv2.imshow('Sınırlayıcı Kutulu Görüntü', detik_görüntü)
cv2.waitKey(0)
cç.destroyAllWindows()

İmutils Kütüphanesinde Video Akışını Gösterme

Bir video akışını göstermek için imutils.video.VideoStream sınıfını kullanabilirsiniz. Örneğin:

import cv2
import imutils
from imutils.video import VideoStream
yetki_nokta = (640, 480)  # Genişlik ve yükseklik değerleri belirleyin.
videostream = VideoStream(resolution=yetki_nokta).start()
saniye = 10  # Saniyede 10 kareyi gösterin.
nokta_saniye = int(1000 / saniye)
yüzde_düşük = 75  # Düşük yüzde oranı
düşük_süreç = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
yüzde_yüksek = 90  # Yüksek yüzde oranı
yüksek_süreç = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
görüntü_yüzdesi = 100  # Yüzde oranı
yüz_sınırı = int((yüzde_yüksek + yüzde_düşük) / 2)  # Yüz sınırı değeri hesaplayın.
detectör_süreç = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
görüntü_yüzdesi = (yüzde_yüksek + yüzde_düşük) // 2
while True:
görüntü = videostream.read()
görüntü_hazırla = cv2.cvtColor(görüntü, cv2.COLOR_BGR2RGB)
yüzler_dizisi = detectör_süreç.detectMultiScale(görüntü_hazırla, scaleFactor=1.1, minNeighbors=5)
görüntü_yüzdesi = (yüzde_yüksek + yüzde_düşük) // 2
for (x_dış_köşe, y_dış_köşe, genişlik, yükseklik) in yüzler_dizisi:
deteksi_görüntüsü = cv2.rectangle(görüntü_yüzdesi, (x_dış_köşe, y_dış_köşe), (x_dış_köşe + genişlik, y_dış_köşe + yükseklik), (0, 255, 0), kalınlık=1)
görüntü_yüzdesi[x_dış_köşe:x_dış_köşe + genişlik, y_dış_köşe:y_dış_köşe + yükseklik] = cv2.blur(görüntü_yüzdesi[x_dış_köşe:x_dış_köşe + genişlik, y_dış_köşe:y_dış_köşe + yükseklik], (23, 23))
görüntü_yüzdesi = imutils.resize(görüntü_yüzdesi)  # Resize the image to fit the display window.
videostream.stop()  # Stop the video stream.
videostream.release()  # Release the video stream resources.
cv2.destroyAllWindows()  # Destroy all OpenCV windows.
cç.destroyAllWindows()  # Destroy all OpenCV windows.
cç.waitKey(0)  # Wait for a key press to exit.
videostream.stop()  # Stop the video stream.
videostream.release()  # Release the video stream resources.
cv2.destroyAllWindows()  # Destroy all OpenCV windows.
cç.destroyAllWindows()  # Destroy all OpenCV windows.
cç.waitKey(0)  # Wait for a key press to exit.
videostream.stop()  # Stop the video stream.
videostream.release()  # Release the video stream resources.
cv2.destroyAllWindows()  # Destroy all OpenCV windows.

Bu örneklerde imutils‘in sunduğu fonksiyonları kullanarak görsel içerikleri kolayca işleyebiliriz. İstediğiniz işlemi gerçekleştirdikten sonra sonucu görüntüleyebilirsiniz.

Örneğin:

  • Boyutu değiştirmek için imutils.resize()
  • Açmak veya kapatmak için imutils.rotate()
  • Sınırlayıcı kutu çizmek için OpenCV’nin rectangle() fonksiyonu
  • Video akışını göstermek için imutils.video.VideoStream

Tüm bu işlemler sayesinde görsel içeriklerinizi istediğiniz gibi düzenleyebilir ve analiz edebilirsiniz. İstediğiniz özelliklerin nasıl kullanılacağını daha ayrıntılı olarak öğrenmek isterseniz lütfen belirtin!

Scroll to Top