Ana içeriğe atla

OpenCV Eğitimi: Görsel Veri İşlemenin Gücünü Açığa Çıkarın

Bu makale, Python ortamında OpenCV kütüphanesini kullanarak görüntü ve video işleme üzerine kapsamlı bir rehber sunar. OpenCV’nin sunduğu görüntü işleme işlevlerinin geniş yelpazesine, temel tekniklerden daha ileri uygulamalara kadar dalıyoruz.
Güncel 3 Eki 2026  · 13 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

OpenCV (Open Source Computer Vision Library), bilgisayarla görme projelerinde yaygın olarak kullanılan, güçlü ve açık kaynaklı bir kütüphanedir. OpenCV, gerçek zamanlı bilgisayarla görme için entegre bir çerçeve sunmak üzere tasarlanmıştır ve çok sayıda görüntü ve video analiz uygulamasını kolaylaştıran bir platform işlevi görür.

OpenCV kütüphanesi, geliştiricilerin ve araştırmacıların görsel veri işlemenin avantajlarından yararlanmasını sağlamada kilit bir rol oynar. Yetenekleri, temel görüntü işleme işlemlerinden nesne tanıma ve yüz tanıma gibi daha karmaşık görevlere kadar uzanır. Geniş bir algoritma, yöntem ve görüntü verisi işleme işlemleri koleksiyonu sunarak, OpenCV görsel içeriği tanıyıp sınıflandırabilen akıllı sistemlerin geliştirilmesini kolaylaştırır.

OpenCV’nin dikkat çekici kullanım alanlarından biri, görüntülerde veya video akışlarında nesneleri tanımlayıp konumlandırmayı sağlayan algoritmaların kullanıldığı nesne tanımadır. Bu yetenek, yüz tanıma, hareket takibi ve artırılmış gerçeklik teknolojilerine destek gibi diğer bilgisayarla görme görevlerini de kapsar.

Bu makalede şunları ele alıyoruz:

  • OpenCV kütüphanesinin etkinleştirdiği görüntü işleme işlevleri
  • OpenCV kütüphanesinin bir Python ortamına nasıl kurulacağı
  • Görüntü işleme tekniklerine genel bakış ve bunların OpenCV içinde nasıl uygulanacağı
  • OpenCV ile Video İşleme teknikleri

OpenCV Kurulumu

Önkoşullar

Bu OpenCV eğitimini takip etmek için orta düzeyde Python bilgisine ve bilgisayarla görme konusunda temel bir anlayışa ihtiyacınız olacak. Görüntü işleme ilkelerine aşinalık, eğitim boyunca öğrenim deneyimini geliştirecektir; yine de kilit kavramlar bahsedildiklerinde tanımlanmaktadır.

Kurulum adımları

  1. Python kurulumu: Sisteminizde Python kurulu olduğundan emin olun. Python’un en son sürümünü resmi Python web sitesinden indirebilirsiniz.
  2. Ortam ve Paket Yöneticisi (isteğe bağlı): Kütüphane yönetimini kolaylaştırmak için Anaconda gibi paket yöneticileri kullanabilirsiniz. Anaconda’yı resmi web sitelerinden indirip kurun.
  3. OpenCV Kurulumu: Bir komut istemi veya terminal penceresi açın ve OpenCV’yi pip (Python’un paket yükleyicisi) ile kurmak için aşağıdaki komutu kullanın:
!pip install opencv-python

Anaconda kullanıyorsanız aşağıdaki komutu kullanabilirsiniz:

!conda install -c conda-forge opencv

Doğrulama

Kurulumun başarılı olduğunu teyit etmek için aşağıdaki kodu bir Python Yorumlayıcıda veya Jupyter NoteBook’ta çalıştırın:

import cv2
print(cv2.__version__)

Kurulum başarılıysa, bu komut yüklü OpenCV kütüphanesinin sürüm numarasını yazdırmalıdır. Terminalde veya konsolda sürüm numarası yazdırılmıyorsa kurulum işleminin başarısız olduğu anlamına gelir.

Google Colab kullanılıyorsa önemli not: Google Colab not defterlerinde görüntüleri gösterebilmek için, geleneksel cv2.imshow işlevini, Google Colab’in özel kütüphanelerinin sağladığı cv2_imshow ile değiştirmek gerekir. Bu ayarlama, cv2.imshow’u desteklemeyen Colab ortamıyla uyumluluğu sağlar. Bu değişikliği uygulamak için, aşağıdaki gibi Google Colab yamalarından cv2_imshow işlevini içe aktarın:

from google.colab.patches import cv2_imshow

# Displaying an image in a window
cv2_imshow(image)

OpenCV özelliklerine giriş

OpenCV’de Görüntü Yükleme ve Gösterme

Aşağıdaki kod parçası, OpenCV kütüphanesini görüntü işleme için kullanmanın temel bir giriş noktasını sunar. Bir görüntüyü geliştirme ortamına yüklemek; basit bilgisayarla görme projelerinden üretimdeki gerçek zamanlı nesne tespiti uygulamalarına kadar birçok alanda yapılır. Görüntünün gösterilmesi, bir görüntünün içeriğini veya işleme sonucunu gözlemlemek açısından da kritiktir. Aşağıdaki kodda bir dosyadan JPG okuyor ve OpenCV kütüphanesini kullanarak görüntülüyoruz.

OpenCV’de görüntüleri yüklemek ve görüntülemek için aşağıdaki kod parçası kullanılabilir:

import cv2

# Loading image from a file
image = cv2.imread('your/image/path.jpg')

# Displaying an image in a window
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

image1.png

Bir dizüstü bilgisayarın etrafında toplanmış ofis çalışanları. Kaynak: Canva

Bu kodda, görüntü ‘cv2.imread’ kullanılarak dosyadan okunur ve ardından ‘imshow’ yardımıyla bir pencerede gösterilir. 'cv2.waitKey(0)' işlevi, kullanıcı bir tuşa basarak kapatana kadar pencerenin açık kalmasını sağlar.

Görüntü işleme, piksel verilerini; özellik çıkarımı, görüntü analizi veya diğer bilgisayarla görme görevleri için, başlangıçtaki görsel görünümü değiştirecek şekilde dönüştürmektir. Görüntü işleme tekniklerine örnek olarak renk işleme, filtreleme, segmentasyon, kenar tespiti vb. verilebilir.

Aşağıdaki kod parçası, önceki kodda yüklenen görüntü üzerinde basit bir görüntü işleme tekniğini göstermektedir. Burada gösterilen teknik, basit bir renk dönüşümüdür; özel olarak gri tonlamaya dönüştürme. Gri tonlamaya dönüştürme, görüntüyü tek bir yoğunluk kanalına indirgediği için görüntü işlemede temel bir tekniktir.

# Converting an image to grayscale form
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Displaying the grayscale image
cv2.imshow('Gray Image', gray_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Burada, cv2.cvtColor() yüklenen görüntüyü gri tonlamaya dönüştürür.

Bir dizüstü bilgisayarın etrafında toplanmış ofis çalışanları (Gri tonlama). Kaynak: Canva

Bir dizüstü bilgisayarın etrafında toplanmış ofis çalışanları (Gri tonlama). Kaynak: Canva

Kenar Tespiti

Kenar tespiti, görüntü işleme ve bilgisayarla görmenin temel bir tekniğidir. Görüntüde parlaklığın keskin şekilde değiştiği veya süreksizliklerin olduğu noktaları belirler. Kenarların tespiti, özellikle görüntü verisi içindeki özelliklerin bulunmasında, bilgisayarla görmede kritik öneme sahiptir. Kenar tespiti, genel olarak piksel yoğunluklarındaki ani değişimleri bularak çalışır. Görüntü parlaklığındaki bu keskin değişim noktaları birleştirilerek, görüntüdeki nesneleri çevreleyen çizgiler ve kenarlar oluşturulur.

Kenar tespiti algoritmalarıyla, bir görüntü üzerindeki bir nesnenin çok küçük dokusal ve yapısal özellikleri dahi saptanabilir.

Çeşitli kenar tespiti algoritmaları, örneğin Canny Kenar Algılayıcı, Sobel Yöntemi ve Bulanık Mantık yöntemi, nesne tanıma, görüntü segmentasyonu ve özellik çıkarımında kullanılır. Aşağıdaki kod parçası, OpenCV kullanarak basit kenar tespitini göstermektedir:

# Applying Canny edge detection (a simple edge detection method)
edges = cv2.Canny(gray_image, 50, 150)

# Displaying the edge-detected image
cv2.imshow('Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

Canny kenar tespiti algoritması, OpenCV kütüphanesinde hazır bulunmaktadır; alttaki 'cv2.Canny()' işlevi, gri tonlamalı görüntüde nesnenin kenarlarını tespit etmek için uygulanır.

Bir dizüstü bilgisayarın etrafında toplanmış ofis çalışanları (Gri tonlama). Kaynak: Canva

Bir dizüstü bilgisayarın etrafında toplanmış ofis çalışanları (Gri tonlama). Kaynak: Canva

Görüntüleri Yeniden Boyutlandırma ve Döndürme

Görüntüleri yeniden boyutlandırma ve döndürme, görsel içeriğin uyarlanması ve dönüştürülmesini sağladıkları için görüntü işlemenin temel gereksinimleridir. Bir görüntüyü yeniden boyutlandırma, boyutlarının büyütülmesi veya küçültülmesini içerir ve bu işlev, görüntüleri belirli ortamlara ölçeklemek ve yerleştirmek için gereklidir.

Döndürme ise görüntünün belirli bir dönme açısıyla bakış açısını değiştiren bir ayarlamadır. Her iki işlem de bilgisayarla görme, makine öğrenimi ve grafikler dahil çeşitli amaçlarla, yaygın biçimde ön işleme adımı olarak uygulanır. Örneğin, derin sinir ağlarını eğitirken döndürme ve yeniden boyutlandırma, eğitim sırasında ağa verilen verisetinin çeşitliliğini artırmak için kullanılan veri artırma teknikleridir. Veri artırmanın amacı, eğitilmiş ağın görülmemiş veriyi iyi genellemesini sağlamak için yeterli varyansa sahip bir verisetini ağ ile eğitmektir.

OpenCV kullanarak görüntüleri yeniden boyutlandırmak ve döndürmek için aşağıdaki kodu kullanabilirsiniz:

# Resizing the image
resized_image = cv2.resize(image, (width, height))

# Rotating the image by 45 degrees
rotation_matrix = cv2.getRotationMatrix2D((width / 2, height / 2), 45, 1)
rotated_image = cv2.warpAffine(resized_image, rotation_matrix, (width, height))

# Displaying the resized and rotated images
cv2.imshow('Resized Image', resized_image)
cv2.imshow('Rotated Image', rotated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

'cv2.resize' görüntüyü yeniden boyutlandırmak için kullanılırken, 'cv2.getRotationMatrix2D' ile 'cv2.warpAffine' birlikte görüntüyü döndürmek için kullanılır.

Bir dizüstü bilgisayarın etrafında toplanmış ofis çalışanları (Döndürülmüş). Kaynak: Canva

Bir dizüstü bilgisayarın etrafında toplanmış ofis çalışanları (Döndürülmüş). Kaynak: Canva

Videoları Yükleme ve İşleme

Videolar, art arda sunulan bir dizi görüntüdür. Bilgisayarla görmede, video işleme yetenekleri hem gerçek zamanlı hem de kayıtlı verileri işleyen uygulamaların geliştirilmesi ve oluşturulması için kritik öneme sahiptir. Görüntülerin durağan doğasının aksine, video işleme, zaman içinde hareketin analizi, değişimlerin incelenmesi ve zamansal örüntülerin çıkarılmasını mümkün kılan zaman dizileriyle ilgilenir.

Video verisindeki içeriğin dinamik doğası, özellikle gözetim, otonom sürüş, etkinlik tanıma ve daha pek çok kritik sistemde, hareketin ve değişimin anlaşılmasının gerekli olduğu durumlarda, video işleme tekniklerinin verimli olmasını gerektirir.

OpenCV’nin video işleme görevlerinde kullanılmasının önemli bir avantajı, video akışlarını verimli bir şekilde ele almak üzere tasarlanmış kapsamlı özellikler seti sunmasıdır. OpenCV, tıpkı görüntülerde olduğu gibi video yakalama, işleme ve analiz araçları sağlar.

Aşağıdaki kod parçası, yerel olarak bulunan bir videoyu yüklemek ve işlemek için kullanılabilir:

import cv2

# Open a video capture object
cap = cv2.VideoCapture("Your video's path.mp4")

# To check if the video has opened successfully of not
if not cap.isOpened():
    print("Error: Couldnot open the video.")
    exit()

# Loop through the video frames
while True:
    # Reading a frame from the video
    ret, frame = cap.read()

    # Break the loop if the video has ended
    if not ret:
        break

    # Display the original frame
    cv2.imshow('Original Video', frame)

    gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.imshow('Black and White Video', gray_frame)

    # Perform edge detection on the video
    edges_frame = cv2.Canny(gray_frame, 50, 150)
    cv2.imshow('Edges Video', edges_frame)

    # Break the loop if 'q' key is pressed
    if cv2.waitKey(25) & 0xFF == ord('q'):
        break

# Release the video capture object and close all windows
cap.release()
cv2.destroyAllWindows()

Bu kodda, ‘cv2.VideoCapture’ sınıfı bir video dosyasına erişmek ve ‘cap.read' adlı yöntemiyle kareleri okumak için kullanılır. Önce orijinal videoyu gösterir, ardından siyah-beyaza dönüştürür ve son olarak her kare için kenar tespiti yapar. Döngü, video boşalana kadar ya da çıkmak için klavyeden giriş alınmadan önce çalışır. ‘cv2.waitKey(25)’, karelerin gösterilmesi arasında kısa bir gecikmeye izin vererek akıcı bir oynatma sağlar.

OpenCV ve Yolo ile İnsan Tespiti

Nesne Tespiti ve İnsan Tespiti

Nesne tespiti, bir görüntüde veya videoda nesneleri tespit etmeyi ve konumlandırmayı, ayrıca tanıma sonuçları – tespit edilen sınıf etiketleri listesi ve karşılık gelen sınırlayıcı kutuları – sağlamayı amaçlayan temel bir bilgisayarla görme görevidir. Nesne tanımanın bir varyantı olan insan tespiti, görsel bilgiler içinde insanları tanımlamaya ve konumlandırmaya odaklanır.

İnsan Tespitinin Uygulamaları

İnsan tespitinin uygulamaları arasında gözetim, kalabalık yönetimi, kişi sayımı, takip, insan-bilgisayar etkileşimi ve akıllı ortamlar bulunur. Gözetimde bu teknoloji şüpheli faaliyetlerin tespitine yardımcı olurken, kalabalık yönetiminde jest tanıma ve takibi destekler. İnsan tespiti, insan-bilgisayar etkileşiminde kritik bir rol oynar ve ayrıca akıllı ortamlarda kaynak optimizasyonu ve gelişmiş güvenlik için kullanılır.

YOLO Nesne Tespit Modeli

YOLO, "You Only Look Once" ifadesinin kısaltmasıdır ve gerçek zamanlı nesne tanımayı verimli bir şekilde gerçekleştiren, yaygın olarak kullanılan bir sistem haline gelmiştir. Klasik nesne tespiti yöntemlerinin aksine YOLO, görüntüyü bir hücre ızgarasına böler ve her hücre için sınırlayıcı kutuları ve sınıf olasılıklarını eşzamanlı olarak tahmin eder.

Kapsamlı rehberimizde YOLO Nesne Tespiti hakkında daha fazlasını okuyabilirsiniz.

Bir Görüntüde Kişi Tespiti

Aşağıda, bir görüntüde kişi tespiti için OpenCV ve Yolo kullanan bir kod parçası yer almaktadır:

import cv2

net = cv2.dnn.readNet('yolov3.weights', 'yolov3.cfg')
layer_names = net.getUnconnectedOutLayersNames()

image = cv2.imread('image path.jpg')
height, width = image.shape[:2]

blob = cv2.dnn.blobFromImage(image, 1/255.0, (416, 416), swapRB=True, crop=False)
net.setInput(blob)
outs = net.forward(layer_names)

for out in outs:
    for detection in out:
        scores = detection[5:]
        class_id = np.argmax(scores)
        confidence = scores[class_id]
        
        if confidence > 0.5 and class_id == 0:  # Class ID for person
            box = detection[:4] * np.array([width, height, width, height])
            (x, y, w, h) = box.astype(int)
            cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)

cv2.imshow('Person Detection', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Bir Videoda Kişi Tespiti

Benzer şekilde, videoda kişi tespiti için kod yapısı da benzer ilkeleri izler. Tek bir durağan görüntüyü işlemek yerine, betik veya uygulama video karelerini sürekli olarak işler.

Hem görüntülerde hem de video kliplerde insanları tanımlamanın altında yatan ilke aynıdır; temel fark zamandır. Görüntülerde görev, tekil durağan karelerde insanları tanıyıp konumlandırmayı içerir.

Bu uygulama, gözetim anlık görüntüleri ve diğer örtüşmeyen fotoğraflar için en uygunudur. Videolarda ise amaç, bireyleri sonraki karelerde hareket ederken tanımlayıp izlemektir. Bu bazen videolarda nesne takibi olarak anılır. Zaman boyutu, insan hareketleri ve etkileşimleri zaman içinde ele alındığında kritik öneme sahiptir; bu da video tabanlı kişi tespitini güvenlik gözetimi, kalabalık izleme ve davranış analizi gibi gerçek zamanlı uygulamalar için hayati bir araç haline getirir.

Gerçek Hayat Uygulamaları ve Etik Hususlar

İnsan tespitinin diğer bazı gerçek dünya kullanım alanları arasında akıllı şehirler, perakende analitiği ve kamu güvenliği bulunur. Bununla birlikte, mahremiyet sorunları, rıza ve teknolojinin kötüye kullanımıyla ilgili etik hususlar mevcuttur. Faydalar ile etik kaygılar arasında denge kurmak, çeşitli alanlarda sorumlu yaygınlaştırmayı sağlar.

Sonuç

Bu eğitim, çeşitli bilgisayarla görme görevleri için OpenCV kütüphanesiyle çalışmanın temel yönlerini gösterdi. Temel bilgilerle başlayarak OpenCV’nin bir Python ortamına nasıl kurulacağını ele aldık. Görüntüleri yükleme ve gösterme için OpenCV işlemleri, görüntüleri gri tonlamaya dönüştürme ve kenar tespiti uygulama gibi görüntü işleme teknikleriyle birlikte örneklendirildi. Genel olarak, OpenCV’nin, video karelerine görüntü işleme teknikleri uygulamak da dahil olmak üzere, gelişmiş görüntü dönüşümleri ve analizleri gerçekleştirebildiği açıktır.

Özellikle, OpenCV uygulamalı bilgisayarla görmede kritik bir rol oynar; sunduğu esneklik ve sağlam yetenekler sayesinde bilgisayarla görme mühendislerinin ve makine öğrenimi uygulayıcılarının görsel veri işlemesine ilişkin pek çok zorluğu ele almasını sağlar. OpenCV kütüphanesini kullanmanın başlıca avantajı, bilgisayarla görme algoritmalarını uygulamayı sadeleştirmesi ve uygulama fikirlerini verimli bir şekilde pratik uygulamalara dönüştürmesidir.

Bu makalede ele alınan kavramlara dair anlayışınızı, özenle hazırlanan bir kursla Python ile görüntü işleme dünyasına daha derinlemesine dalarak güçlendirin. Bu kurs, Sci-kit Image ve Numpy gibi ek kütüphanelerle görüntü işleme ve bilgisayarla görme araç setinizi genişletir.


Richmond Alake's photo
Author
Richmond Alake
LinkedIn

1M+ görüntülemeli Makine Öğrenimi içerik üreticisi — Bilgisayarlı Görü Kuruluş Mühendisi. Teknoloji ve Finans alanlarında bilgi edinmeye ve paylaşmaya ilgi duyar

Konular
Makine Öğrenimi
Python

Python Yolculuğunuza Bugün Başlayın!

Kurs

Orta Seviye Python

4 sa
1.4M
Matplotlib kullanarak görselleştirmeler oluşturarak ve pandas ile DataFrames'i manipüle ederek veri bilimi becerilerinizi geliştirin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör