Codigos Contadora
Codigos Contadora
class ObjectScreen(QMainWindow):
def __init__(self):
super(ObjectScreen, self).__init__()
loadUi("gui_conteo.ui", self)
self.filename = None
self.open_img.clicked.connect(self.cargarImagen)
self.contar.clicked.connect(self.contar_objetos)
def cargarImagen(self):
try:
self.filename = QFileDialog.getOpenFileName(filter="Image
(*.*)")[0]
imagen = cv2.imread(self.filename)
self.setPhoto(imagen)
except:
pass
def contar_objetos(self):
umbral = 200
img = cv2.imread(self.filename)
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, img_thres = cv2.threshold(img_gray, umbral, 255,
cv2.THRESH_BINARY_INV)
contornos, _ = cv2.findContours(img_thres, cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)
texto = str(len(contornos))
self.label_conta.setText(texto)
# main
app = QApplication(sys.argv)
welcome = ObjectScreen()
widget = QtWidgets.QStackedWidget()
widget.addWidget(welcome)
widget.show()
try:
sys.exit(app.exec_())
except:
print("Saliendo")
import sys
from PyQt5 import QtWidgets
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QApplication, QMainWindow
import cv2
import numpy as np
class ObjectScreen(QMainWindow):
def __init__(self):
super(ObjectScreen, self).__init__()
loadUi("gui_conteo.ui", self)
self.filename = None
self.open_img.clicked.connect(self.start_video)
def start_video(self):
self.Work = Work()
self.Work.start()
self.Work.Imageupd.connect(self.Imageupd_slot)
class Work(QThread):
Imageupd = pyqtSignal(QImage)
def run(self):
self.hilo_corriendo = True
cap = cv2.VideoCapture(0)
while self.hilo_corriendo:
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
kernel = np.ones((5, 5), np.uint8)
erosion = cv2.erode(gray, kernel)
dilation = cv2.dilate(erosion, kernel)
gauss = cv2.GaussianBlur(dilation, (5, 5), 0)
Canny = cv2.Canny(gauss, 100, 200)
self.ctns, _ = cv2.findContours(Canny, cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(frame, self.ctns, -1, (0, 0, 255), 2)
if ret:
Image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
flip = cv2.flip(Image, 1)
convertir_QT = QImage(flip.data, flip.shape[1],
flip.shape[0], QImage.Format_RGB888)
pic = convertir_QT.scaled(480, 360, Qt.KeepAspectRatio)
self.Imageupd.emit(pic)
def contornos(self):
a = len(self.ctns)
return a
def stop(self):
self.hilo_corriendo = False
self.quit()
# main
app = QApplication(sys.argv)
welcome = ObjectScreen()
widget = QtWidgets.QStackedWidget()
widget.addWidget(welcome)
widget.show()
try:
sys.exit(app.exec_())
except:
print("Saliendo")