Tarafıma verilen ödev neticesinde görüntü işleme ile yoklama alınması istendi benden. Bende python üzerinden yaptım. Yüz_verisi olarak tanıtıp kişileri daha sonra Yüz_tanima kısımından yüzlerin kimlere ait olduğunu tespit ettim. Aradan 1 ay geçince tekrar sisteme girdim yüz verisi kımına girdiğimde kamera açılması gerekiyor, çalıştır dediğimde kamera ışığı yanıyor fakat hemen açılması gereken kamera artık açılmıyor. Yüz tanima kısmında ise çalıştırdığımda kamera ışığı yanıyor ve hemen kamera açılıyor. Sorunun sebebi ne olabilir. Saygılarımla
Kodu da paylaşırsanız bu kısımda daha hızlı yardımcı olmaya çalışırız. Kodun aynı olup olmadığından emin olun sadece. Bazen kameraları boot süresi gibi kısa zamanda bekletilmeleri gerekiyor. Benim kameramdan bir örnek bu. 3-4 saniye açılması için beklemem gerekiyor. Fakat kodun bir loopda olduğundan ve bir kare alıp hemem kapanmayacak şekilde olduğundan emin misin? Eğer hem 0-dan açsın fotoğrafı alıp kapasın şeklinde one-time çalışıyorsa kodun, o zaman belki kamerayı sadece boot edib alana kadar kodun bitiyordur. Bunları dikkate alarak kodunu bekliyor olacağız.
import cv2 #opencv kütüphanesi eklendi
vid_cam = cv2.VideoCapture(0) # kamera tanımlandı
yüz tabanı için hazır bulunan sınıflandırıcı harcascade.xml dosyası dahil edildi
yuz_dedektor = cv2.CascadeClassifier(‘haarcascade_frontalface_default.xml’)
tanımlanan yüzleri ayırmak için farklı rakamlar atandı
yuz_ismi = 5
çekilecek fotoğraf için değişken tanımlandı
sayi = 1
while(True): # while döngüsü oluşturuldu
_, resim_cerceve = vid_cam.read() # kamera okutuldu
gri = cv2.cvtColor(resim_cerceve, cv2.COLOR_BGR2GRAY) # resim rengi için gri tonlama eklendi
yuzler = yuz_dedektor.detectMultiScale(gri, 1.3, 5) # resim için alt ve üst sınırlar belirlendi
for(x,y,w,h) in yuzler: # for döngüsünde çerçeve ebatları için değişkenler belirlendi
# cerceve kalınlığı ve rengi belirlendi
cv2.rectangle(resim_cerceve, (x,y), (x+w,y+h), (255,0,0), 2)
sayi += 1 # fotoğraf adet artışı tanımlandı
# resimler veri klasörüne yazdırıldı
cv2.imwrite("veri/user." + str(yuz_ismi) + '.' + str(sayi) + ".jpg", gri[y:y+h,x:x+w])
cv2.imshow('cerceve', resim_cerceve) # kameraya göster komutu atandı
# fotoğraf kalitesi belirlendi ve kameradan çıkış tuşu atandı
if cv2.waitKey(5) & 0xFF == ord('q'):
break
elif sayi>50: #kameranın çekeceği fotoğraf sayısı sınırlandırıldı.
break
vid_cam.release() # kamera durduruldu
cv2.destroyAllWindows() # tüm pencereler kapatıldı.