Page 64 - Tasarım Odaklı Düşünme ile Proje Hazırlama
P. 64
Yazılımsal prototipleme: Prototipin bileşenleri Raspberry Pi, Raspberry Pi Kame-
ra Modülü, dirençler, led lambalar ve diğer bileşenlerdir. Diğer bileşenler arasında import cv2
Python yazılımı ve OpenCV gibi yazılım kütüphaneleri bulunmaktadır. import numpy as np
Prototip Oluşturma Malzemeleri: Raspberry Pi, Raspberry Pi Kamera Modülü, ledler, import LambaSistem as L1
dirençler ve kablolar… #Koordinat ve Sensör sınıfının tanımlanması
class Kordinat:
def __init__(self,x,y):
self.x=x
self.y=y
class Sensor:
def __init__(self,kordinat1,kordinat2,frame_weight,frame_lenght):
self.kordinat1=kordinat1
self.kordinat2=kordinat2
self.frame_weight=frame_weight
self.frame_lenght =frame_lenght
self.mask=np.zeros((frame_weight,frame_lenght,1),np.uint8)*abs(self.kordinat2.y-self.kordinat1.y)
self.full_mask_area=abs(self.kordinat2.x-self.kordinat1.x)
cv2.rectangle(self.mask,(self.kordinat1.x,self.kordinat1.y),(self.kordinat2.x,self.kordinat2.y),(255),thick-
ness=
cv2.FILLED)
self.stuation=False
self.car_number_detected=0
#Kamera bilgileri ve yolu
video1=cv2.VideoCapture(“video1.mp4”)
video2=cv2.VideoCapture(“video2.mp4”)
ret,frame=video1.read()
ret2,cerceve=video2.read()
cropped_image= frame[0:450, 0:450]
kesilen_resim=cerceve[0:450, 400:850]
fgbg=cv2.createBackgroundSubtractorMOG2()
Sensor1 = Sensor(
Kordinat(1, cropped_image.shape[1] - 35),
Kordinat(340, cropped_image.shape[1] - 30),
cropped_image.shape[0],
cropped_image.shape[1])
Sensor2 = Sensor(
Kordinat(1, kesilen_resim.shape[1] - 35),
Kordinat(340, kesilen_resim.shape[1] - 30),
kesilen_resim.shape[0],
kesilen_resim.shape[1])
font=cv2.FONT_HERSHEY_TRIPLEX
while (1):
ret,frame=video1.read()
ret2,cerceve=video2.read()
# Çerçevenin yeniden boyutlandırılması
cropped_image= frame[0:450, 0:450]
kesilen_resim=cerceve[0:450, 400:850]
# Çerçeve için morfoloji operasyonlar
deleted_background=fgbg.apply(cropped_image)
silinen_arkaplan=fgbg.apply(kesilen_resim)
opening_image=cv2.morphologyEx(deleted_background,cv2.MORPH_OPEN,kernel)
acilan_resim=cv2.morphologyEx(silinen_arkaplan, cv2.MORPH_OPEN,kernel)
ret,opening_image=cv2.threshold(opening_image,125,255,cv2.THRESH_BINARY)
ret1,acilan_resim=cv2.threshold(acilan_resim,125,255,cv2.THRESH_BINARY)
# Hareket eden herhangi bir nesneyi algılamak
62 63