Pythonilla tolppaan - osa 1

 perjantai, 28. lokakuu 2016
Pythonilla tolppaan - osa 1

Tietokoneella (tahi tabletti/älypuhelin) & zoomaavalla (video)kameralla voisi ohjelmallisesti havaita kameratolpan tahi kolmijalalla olevan siirrettävän nopeuskameran sekä sopivissa sääolosuhteissa myös tolpassa olevan kameran jo aika pitkän matkan päästä. OpenCV kirjasto höystettynä Numpy ja Matplotlib kirjastoilla (kaikki ilmaisia kirjastoja) mahdollistaa ko. operaation. Tässä alustavaa Python koodia/tutkailua aiheesta.

Ääriviivakuvan voi toteuttaa esim. Image thresholding kuvankäsittelytoiminnoilla.

import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('kt.jpg', 0)
img = cv2.medianBlur(img,5)

th2 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,\
            cv2.THRESH_BINARY,11,2)
th3 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,\
            cv2.THRESH_BINARY,11,2)

titles = ['Original Image', 'Adaptive Mean Thresholding', 'Adaptive Gaussian Thresholding']
images = [img, th2, th3]

for i in xrange(3):
    plt.subplot(1,3,i+1),plt.imshow(images[i],'gray')
    plt.title(titles[i])
    plt.xticks([]),plt.yticks([])
plt.show()

Kuva otettu IR suotimella. Tolpassa kamera.



 

Operaatio videokuvalle

import numpy as np
import cv2
from matplotlib import pyplot as plt

cap = cv2.VideoCapture(0)

while(True):
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    median = cv2.medianBlur(gray, 5)

    ath = cv2.adaptiveThreshold(median, 255, cv2.ADAPTIVE_THRESH_MEAN_C,\ cv2.THRESH_BINARY, 11, 2)

    cv2.imshow('cam', ath)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
    
cap.release()
cv2.destroyAllWindows()

Comments

Popular posts from this blog

Modifying old SDR# TETRA demod plug-in

Mods for SDR# TETRA demod plugin 1.0.14.0 - 2