Page 65 - Tasarım Odaklı Düşünme ile Proje Hazırlama
P. 65
contours, hierarchy = cv2.findContours(opening_image, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
hatlar, hierarchy=cv2.findContours(acilan_resim,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
result=cropped_image.copy()
sonuc=kesilen_resim.copy()
zeros_image=np.zeros((cropped_image.shape[0], cropped_image.shape[1], 1), np.uint8)
sifir_resim=np.zeros((kesilen_resim.shape[0], kesilen_resim.shape[1], 1), np.uint8)
# Döngüsel hareket eden herhangi bir nesneyi algılamak
for cnt in contours:
x,y,w,h=cv2.boundingRect(cnt)
if (w>75 and h>75 and w<160 and h<160 ):
cv2.rectangle(result,(x,y),(x+w,y+h),(255,0,0),thickness=2)
cv2.rectangle(zeros_image,(x,y),(x+w,y+h),(255),thickness=cv2.FILLED)
for hat in hatlar:
x,y,w,h=cv2.boundingRect(hat)
if (w>75 and h>75 and w<160 and h<160 ):
cv2.rectangle(sonuc,(x,y),(x+w,y+h),(255,0,0),thickness=2)
cv2.rectangle(sifir_resim,(x,y),(x+w,y+h),(255),thickness=cv2.FILLED)
# bitwise_and aracılığıyla araba olup olmadığını tespit etmek
mask1=np.zeros((zeros_image.shape[0],zeros_image.shape[1],1),np.uint8)
mask_result=cv2.bitwise_or(zeros_image,zeros_image,mask=Sensor1.mask)
white_cell_number=np.sum(mask_result==255)
maske=np.zeros((sifir_resim.shape[0],sifir_resim.shape[1],1),np.uint8)
maske_sonuc=cv2.bitwise_or(sifir_resim,sifir_resim,mask=Sensor2.mask)
beyaz_hucre_no=np.sum(maske_sonuc==255)
# Arabanın kırmızı çizgi sensöründen geçip geçmediğini kontrol etmeyi tespit etmek
sensor_rate=white_cell_number/Sensor1.full_mask_area
if sensor_rate>0:
#print(“result : “,sensor_rate)
pass
oran=beyaz_hucre_no/Sensor2.full_mask_area
if oran>0:
#print(“Sonuç : “,oran)
pass
# Araba kırmızı çizgi sensörünün altından geçiyorsa kırmızı çizgi sensörü yeşil renktedir.
if (sensor_rate>=0.9 and sensor_rate<3.1 and Sensor1.stuation==False):
# kırmızı çizgi çiz
cv2.rectangle(result, (Sensor1.kordinat1.x, Sensor1.kordinat1.y), (Sensor1.kordinat2.x, Sensor1.kordi-
nat2.y),
(0,255, 0,), thickness=cv2.FILLED)
Sensor1.stuation = True
elif (sensor_rate<0.9 and Sensor1.stuation==True) :
# kırmızı çizgi çiz
cv2.rectangle(result, (Sensor1.kordinat1.x, Sensor1.kordinat1.y), (Sensor1.kordinat2.x, Sensor1.kordi-
nat2.y),
(0, 0,255), thickness=cv2.FILLED)
Sensor1.stuation = False
Sensor1.car_number_detected+=1
else :
# kırmızı çizgi çiz
cv2.rectangle(result, (Sensor1.kordinat1.x, Sensor1.kordinat1.y), (Sensor1.kordinat2.x, Sensor1.kordi-
nat2.y),
(0, 0, 255), thickness=cv2.FILLED)
# 2.Kamera için araba kırmızı çizgi sensörünün altından geçiyorsa kırmızı çizgi sensörü yeşil renktedir.
if (oran>=0.9 and oran<3.1 and Sensor2.stuation==False):
# kırmızı çizgi çiz
64 65