Soru sorMatlab ile Kırmızı Işık Algılanınca Fotoğraf Çekmek
murkoc tarafından 6 yıl önce soruldu

Merhaba,
Matlab kullanarak istediğim renkleri algıladığında otomatik fotoğraf çekmek istiyorum. 
Bu konuda bilgisi olan var mıdır? 

6 Cevap
hakkans Yönetici tarafından 6 yıl önce cevaplandı

Merhaba,
Fotoğraf çekimi webcam gibi bir kamera ile yapacaksanız Matlab'a webcam'i tanıtmanız gerekiyor. 1 numaralı linkteki kodu takip ederek kameranızı Matlab'a tanıtabilirsiniz. Sonraki kısımda ise belli zaman aralıklarıyla görüntü alıp kırmızı olup olmadığını kontrol etmeniz gerekiyor. Bunu da bildiğim kadarıyla zamanlayıcı (timer) nesnesi ile yapabilirsiniz. Bu kodun çalışıp çalışmayacağından tam olarak emin değilim. 2 numaralı linkte bu konuyla ilgili daha ayrıntılı bilgi mevcut. kirmiziisikkontrol diye yazdığım fonksiyon sizin kameradan görüntü alıp kırmızı ışık görüp görmediğinizi kontrol ettiğiniz fonksiyon olmalı. Görüntü almak için snapshot fonksiyonunu kullanabilirsiniz (3 numaralı linke bakabilirsiniz).

t=timer('ExecutionMode','fixedRate') %timer nesnesi oluşturma. fixedRate operasyon sabit aralıklarla aynı işlemi yapacak demek.
t.Period=1; %Her saniye çalıştırma yapılacak
t.TimerFcn=@kirmiziisikkontrol;
start(t)

[1] https://www.mathworks.com/help/supportpkg/usbwebcams/ug/acquire-images-from-webcams.html
[2] https://www.mathworks.com/help/supportpkg/usbwebcams/ug/snapshot.html
[3] https://www.mathworks.com/help/matlab/ref/timer-class.html

murkoc tarafından 6 yıl önce cevaplandı

Çok teşekkür ederim önerilerinizi deneyeceğim.

murkoc tarafından 6 yıl önce cevaplandı

Kaynakları inceledim. Hepsi ihtiyacımın olacağı işler ancak ışık algılayınca otomatik fotoğraf çekimi bilgisine ulaşamadım. 
Bu konuda bilgisi olan var mıdır?

sayginer Yönetici tarafından 6 yıl önce cevaplandı

Işık algılayınca fotoğraf çekebilmek için anlık alınan görüntü bilgisi üzerinden bir yöntem izlemek gerekir. Şöyle bir mantık yürütülebilir:
Mesela her saniyede 10×10 piksellik bir veri aldığımızı düşünelim. Aslında bir bakıma her saniye fotoğraf çekiyoruz demek. Eğer bu verileri saklarsak resimleri saklamış yani bir izleti (video) kaydetmiş oluruz. Hafıza sorunu yaratabileceği için kaydetmek yerine her 5 saniyelik veriyi tutmak – değerlendirmek ve duruma göre de kaydetmek veya silmek işlemini kullanabiliriz.
Örneğin bir while döngüsü kullanarak bu her bir saniyede aldığımız görüntüyü değerlendirebiliriz: matrisimizin her bir elementi parlaklık oranına göre belirli değerler arasında değer alacağı için istediğimiz aralıkta matrisimizin tüm elementlerinin ortalamasına göre bir değer belirleyebilir, while döngümüzün sonlanması için de bu değerin aşılıp aşılmadığını programlayabiliriz.

murkoc tarafından 6 yıl önce cevaplandı

Teşekkürler

murkoc tarafından 6 yıl önce cevaplandı

Teşekkürler