13 12 2022
GÖRÜNTÜ İŞLEME Kod ve Resimler (2022-2023)
# -*- coding: utf-8 -*-
“””
Created on Sun Dec 11 15:01:39 2022
@author: Dr.Güray SONUGÜR
“””
#Görüntü Kırmızı Kutu
import cv2
img = cv2.imread(‘skl1.png’)
cv2.imshow(“orjinal”, img)
# Gri seviye dönüşümü
gray_img = cv2.cvtColor(img , cv2.COLOR_BGR2GRAY)
# 7×7 gaussian blur filtresi uygulama
blurred = cv2.GaussianBlur(gray_img, (7, 7), 0)
# Eşikleme işlemi ile siyah/beyaz görüntü elde etme
abc,threshold = cv2.threshold(blurred,250,255,cv2.THRESH_BINARY_INV)
# Bileşen (blob) analiz işlevini uygulayın
(toplamBlob, etiket_id, degerler, centroid) = cv2.connectedComponentsWithStats(threshold, 4, cv2.CV_32S)
# Her bir blob için işlem yapılıyor.
for i in range(1, toplamBlob):
# Blobların alanları
area = degerler[i, cv2.CC_STAT_AREA]
print(area)
# Her bir blobun sol üst köşe, en ve boy koordinatları alınıyor.
x1 = degerler[i, cv2.CC_STAT_LEFT]
y1 = degerler[i, cv2.CC_STAT_TOP]
w = degerler[i, cv2.CC_STAT_WIDTH]
h = degerler[i, cv2.CC_STAT_HEIGHT]
# Kapsayıcı kutunun (Bounding box) koordinatları hesaplanıyor.
pt1 = (x1, y1)
pt2 = (x1+ w, y1+ h)
(X, Y) = centroid[i]
# Herbir blob’a kutu çiziliyor.
cv2.rectangle(img,pt1,pt2,(0, 0, 255), 2)
cv2.imshow(“Image”, img)
cv2.waitKey(0)
cv2.destroyAllWindows()
******************************************************************************************************
# -*- coding: utf-8 -*-
“””
Created on Sat Dec 10 16:32:21 2022
@author: Dr. Güray SONUGÜR
“””
#Video Kırmızı Nesne Bulma
import cv2
import numpy as np
from matplotlib import pyplot as plt
import time
# Dosyadan video oku
x = cv2.VideoCapture(‘KameraVideosuKirmizi.mp4’)
#x = cv2.VideoCapture(‘ormanYanginiVideo.mp4’)
#x = cv2.VideoCapture(‘IHA_Yarismasi.MOV’)
# Dosyadan Görüntü okuma başarılı olduğu sürece while döngüsü çalışsın.
while(x.isOpened()):
# Videodan bir çerçeve oku.
ret, frame = x.read()
frame=cv2.resize(frame,(768,432))
xGri=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
xred=frame[:,:,2]
kirmiziRenk=cv2.subtract(xred,xGri)
z,xIkili=cv2.threshold(kirmiziRenk,70,255,cv2.THRESH_BINARY)
# Bileşen (blob) analiz işlevini uygulayın
(toplamBlob, etiket_id, degerler, centroid) = cv2.connectedComponentsWithStats(xIkili, 4, cv2.CV_32S)
# Her bir blob için işlem yapılıyor.
for i in range(1, toplamBlob):
# Blobların alanları
area = degerler[i, cv2.CC_STAT_AREA]
print(area)
# Her bir blobun sol üst köşe, en ve boy koordinatları alınıyor.
x1 = degerler[i, cv2.CC_STAT_LEFT]
y1 = degerler[i, cv2.CC_STAT_TOP]
w = degerler[i, cv2.CC_STAT_WIDTH]
h = degerler[i, cv2.CC_STAT_HEIGHT]
# Kapsayıcı kutunun (Bounding box) koordinatları hesaplanıyor.
pt1 = (x1, y1)
pt2 = (x1+ w, y1+ h)
(X, Y) = centroid[i]
# Herbir blob’a kutu çiziliyor.
cv2.rectangle(frame,pt1,pt2,(0, 0, 255), 2)
# Ekrandan görüntüleme
cv2.imshow(‘frame’,frame)
cv2.imshow(‘Ikili’,xIkili)
#istenirse video görüntüleme yavaşlatılabilir.
time.sleep(0.1)
# q tuşuna basıldığında çık.
if cv2.waitKey(1) & 0xFF == ord(‘q’):
break
# İşin bittikten sonra her şeyi serbest bırak.
x.release()
cv2.destroyAllWindows()
*******************************************************************************************
# -*- coding: utf-8 -*-
“””
Created on Mon Dec 12 17:24:57 2022
@author: HP
“””
#Video Okuma ve Yazma
import cv2
cap = cv2.VideoCapture(‘ormanYanginiVideo.mp4’)
ret, frame = cap.read() #Bir çerçeve oku
h, w, _ = frame.shape # Çerçevenin en ve boyunu çıkart
frameTime = 100
fourcc = cv2.VideoWriter_fourcc(*”XVID”) # Video kodeklerini ayarla
fps = 1000 / frameTime # Calculate fps
writer = cv2.VideoWriter(“CikisVideosu.mp4”, fourcc, fps, (w, h)) # Video yazma nesnesini oluştur
while ret: # Videonun sonunu belirlemek için ret değişkenini kullan
frame[:,:,0:1]=0
writer.write(frame) # Çerçeveyi yaz
cv2.imshow(“frame”, frame)
if cv2.waitKey(25) & 0xFF == ord(‘q’):
break
ret, frame = cap.read()
writer.release()
cap.release()
cv2.destroyAllWindows()
GÖRÜNTÜ İŞLEME DERSİ VİZE SINAVI YANITLARI (GÜZ 2022-2023) Görüntü İşleme – Video İşlemleri Ders Notları (2022 -2023)