Python ve OpenCV Kullanarak Belli bir Nokta ile Hareket Arası Mesafe Ölçümü

3 4.090

Bu yazımızda Python ve OpenCV kullanarak önceden belirlediğimiz statik bir nokta ile hareket eden nesne arasındaki mesafeyi ölçeceğiz. elde ettiğimiz ölçüm bilgisini ekrana yazdıracağız. OpenCV ile ekrana yazı yazdırmayı bir önceki yazımız da anlatmıştık.

Yine hareket eden nesneyi tespit etmek için contour yöntemi kullanılıyor. Bu yöntemle şekillerin tiplerini bulan bir uygulamayı da sitemizden bulabilirsiniz.

Elde edeceğimiz sonucu alttaki videodan görebilirsiniz.

Bunun için alttaki kodları kullanıyoruz.

import cv2
import numpy as np

cap = cv2.VideoCapture(0)

_, prev = cap.read()
prev = cv2.flip(prev, 1)
_, new = cap.read()
new = cv2.flip(new, 1)

while True:
    diff = cv2.absdiff(prev, new)
    diff = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)
    diff = cv2.blur(diff, (5, 5))
    _, thresh = cv2.threshold(diff, 10, 255, cv2.THRESH_BINARY)
    threh = cv2.dilate(thresh, None, 3)
    thresh = cv2.erode(thresh, np.ones((4, 4)), 1)
    contor, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    cv2.circle(prev, (20, 200), 5, (0, 0, 255), -1)
    for contors in contor:
        if cv2.contourArea(contors) > 30000:
            (x, y, w, h) = cv2.boundingRect(contors)
            (x1, y1), rad = cv2.minEnclosingCircle(contors)
            x1 = int(x1)
            y1 = int(y1)
            cv2.line(prev, (20, 200), (x1, y1), (255, 0, 0), 4)
            cv2.putText(prev, "{}".format(int(np.sqrt((x1 - 20) ** 2 + (y1 - 200) ** 2))), (100, 100),
                        cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 255, 0), 3)
            cv2.rectangle(prev, (x, y), (x + w, y + h), (0, 255, 0), 2)
            cv2.circle(prev, (x1, y1), 5, (0, 0, 255), -1)

    cv2.imshow("orig", prev)

    prev = new
    _, new = cap.read()
    new = cv2.flip(new, 1)

    if cv2.waitKey(1) == 27:
        break

cap.release()
cv2.destroyAllWindows()

 

Diğer OpenCV Örnekleri

Python ve OpenCv görüntü işleme kütüphanesi kullanarak hazırladığımız diğer örneklerimizin listesi:

  1. OpenCV Nedir?
  2. Python ve OpenCV ile Video Oynatma
  3. Python ve OpenCV ile Videoyu Renklerine Ayırma
  4. Python ve OpenCV İle Video Kaydetme
  5. Python ve OpenCV ile Resim İşlemlerine Giriş
  6. Python ve OpenCV Kullanarak Yüz Tanıma Uygulaması
  7. Python ve OpenCV Kullanarak Bilgisayar Kamerasından Görüntü Almak
  8. Pyton ve OpenCV Kullanarak Kenar Algılama Uygulaması
  9. Python ve OpenCV Kullanarak Resimlere Elastik Efekti Verme
  10. Python ve OpenCV Kullanarak SuperPixel İşlemi Uygulaması
  11. Python Ve OpenCv İle WebCam’den Aldığınız Görüntüyü İşlemek
  12. Python Ve OpenCV Ile Resimlerinizi JSON Formatına Çevirin
  13. Python Ve OpenCV Ile Youtube Videolarını Stream Yapma
  14. Python Ve OpenCV Kullanarak Bir Resmin Tüm Piksellerine Ulaşmak
  15. Python ve OpenCV kullanarak komik aynalar uygulaması
  16. Python Ve OpenCV Ile Basit Şekil Algılama Uygulaması
  17. Python Ve OpenCV Kullanarak Görüntülere Gerçek Zamanlı Metin Yazma

3 Yorumlar
  1. dede diyor

    Herşey için teşekkür ederim.Güzel bir anlatım.

  2. Misafir diyor

    Merhaba, öncelikle içerik için teşekkürler peki referans noktası alınmaksızın yani birbirinden uzaklaşan iki nokta arası mesafe ölçüsü nasıl alabilirim?

  3. bilal diyor

    Halil bey Çok güzel çalışma. Size bir video göndermek istiyorum. Bende sabit bir noktadan hareket eden bir conveyor mesafesini ölçmek istiyorum. Ancak olmadı. Yardımcı olurmusunuz.

Cevap bırakın

E-posta hesabınız yayımlanmayacak.

Bu web sitesi deneyiminizi geliştirmek için çerezleri kullanır. Bununla iyi olduğunuzu varsayacağız, ancak isterseniz vazgeçebilirsiniz. Kabul etmek Mesajları Oku