# -*- coding: utf-8 -*-
from PyQt4 import QtGui, QtCore
import Image
import ImageQt
import opencv
from opencv import highgui
# kamera yakalayıcı...
camera = highgui.cvCreateCameraCapture(0)
# kamera işlemimiz sürekli olarak ekrana görüntüyü basıyor...
class camThread(QtCore.QThread):
def run(self):
while True:
# görüntüleri basarken her aralıkda 60ms bekliyoruz, buda 60fps demek...
# eğer sizde görüntü yavaş olursa yani fps yi düşürün...
self.msleep(60)
# görüntüyü alıyoruz...
self.image = highgui.cvQueryFrame(camera)
# resim sinyalini yayıyoruz ve gidecek fonksiyona self.image değişkenini,
# gönderiyoruz...
self.emit(QtCore.SIGNAL("image"), (self.image))
class camoruxWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.resize(650, 450)
self.camThread = camThread()
self.showLabel = QtGui.QLabel(self)
self.showLabel.resize(640, 480)
# camThread den gelen sinyali alıyoruz ve self.showImage ye bağlıyoruz...
self.connect(self.camThread, QtCore.SIGNAL("image"), self.showImage)
self.camThread.start()
self.button = QtGui.QPushButton(self)
self.button.setText(u"Resim çek")
self.connect(self.button, QtCore.SIGNAL("clicked(bool)"), self.cek)
def cek(self):
# flash
self.flash = QtGui.QWidget()
self.flash.setStyleSheet("background-color: rgb(255, 255, 255);")
self.flash.showFullScreen()
# resim çekiliyor...
i = highgui.cvQueryFrame(camera)
opencv.adaptors.Ipl2PIL(i).save("deneme.png")
# flash kapanıyor
self.flash.close()
def showImage(self, image):
# burada: gelen resmi ImageQt ile QLabel in istediği şekile dönüştürüyoruz...
self.image = ImageQt.ImageQt(opencv.adaptors.Ipl2PIL(image).transpose(Image.FLIP_LEFT_RIGHT))
# ve gösteriyoruz...
self.showLabel.setPixmap(QtGui.QPixmap.fromImage(self.image))
app = QtGui.QApplication([])
mw = camoruxWindow()
mw.show()
app.exec_()
Dikkat etmeniz gereken nokta şu:
camThread görüntüyü gösterirken 60ms bekliyor yani 60fps ile görüntü gösteriliyor, sizde eğer görüntü yavaş olursa fps yi düşürmeniz gerekiyor demektir. 30-40 fps arası deneyin…
Bu yorum yazar tarafından silindi.
YanıtlaSilben de python öğrenmek istiyorum yavvv
YanıtlaSil4 sene oldu neredeyse. Öğrendin mi bari?
Silbaba 2017 oldu ölmeden öğren şunu artık...
Silbaba 2018 oldu yaaaa
Sil26.11.2018 olmuş tarih umarım öğrenmişsindir de profesyonel olmuşsundur
Silbaba 2020 oldu içinden geçiyorsundur herhalde
SilKardeş hakkaten sene 2021 olacak sen ne zaman öğrenecen bu python ı ???
SilKodlarin arasina OpenCV ile "yuz algilama" ekledigim zaman gozle gorulur bir bicimde (neredeyse yari yariya) performans dusuyor. Goruntuyu Qt-OpenGL kullanarak ekrana getirmenin yollarini ariyorum. Sanirim en hizlisi boyle olacaktir. Baska fikri olan var mi?
YanıtlaSilSanmam, opengl sadece ekrana yansıtılma kısmında hız katar ki kodun yavaşlığının sebebi yüz tanımlama algoritmasının kendisi. Yapılabilecek bir şey yok gibi duruyor.
YanıtlaSilAyrıca bende garip bir şekilde kare sayısı düşük oluyor ışığın azlık-çokluğuna göre. Sürücüler offical olmadığı için (ve ortada offical bir webcam sürücüsü olmadığı için :/) oluyor olabilir diye düşünüyorum.
Öncelikle anlatım için teşekkür etmek isterim.
YanıtlaSilAncak Bir hatayla karşı karşıyayım.Şöyle ki:
Kodları aynen kopyla yapıştır yapmama rağmen çalışmadı pardus ta ilgili kütüphanelerim kurulu aldığım hata ise şöyle
File "camera.py", line 19
self.msleep(60)
IndentationError: expected an idented bloack
cevabınız için şimdiden teşekkür ederim.
IndentationError: expected an indented block, hata mesajının anlamı girinti beklenen bir yerde gerekli girintinin verilmemiş olmasıdır. Sevgili Mirat konuyla ilgilenecektir.
YanıtlaSil"her aralıkda 60ms bekliyoruz, buda 60fps demek"
YanıtlaSilBu 1000/60'tan 16.7 fps demektir. Kodlayıcının bilgisine...
Sayın Aydın Şen
YanıtlaSilÖncelikle cevabınız için teşekkür ederim.
sorun o kadar basitmişki.2 sn ye sürmedi halletmem.
Bu basit hatanın nedeni ise konuyu incelediğim gece bi hayli yorgun ve kafamın bi o kadarda karışık olmasıymış.
tekrar teşşekkür ederim
saygılarımla
Can TORUN
bu kodlada python ımage ve Imageqt felan görnüyor bunun icin anaconda yı kuruyorum ve derleyeici onu gösteiriyorum ama ne yazık ki aynı bana yardım edebilk var mı
YanıtlaSilHarrah's Philadelphia Casino & Racetrack - JTM Hub
YanıtlaSilHarrah's 남양주 출장안마 Philadelphia 영주 출장샵 Casino & Racetrack. Philadelphia. 나주 출장안마 777 Casino Drive, Chester, PA 태백 출장안마 18702. harrahscherops://harrahsphillycasino.com/harrahs 경상남도 출장마사지