Untitled

mail@pastecode.io avatarunknown
plain_text
a month ago
2.3 kB
1
Indexable
Never
import os
import time

import cv2
import numpy as np
from PIL import Image

path = str(os.getcwd())+"/"

def takePic(imageName):
    """
    Kameradan bir fotoğraf çeker.

    Args:
        imageName (str): Fotoğrafın kaydedileceği isim.

    Returns:
        None
    """
    cam_port = 0
    cam = cv2.VideoCapture(cam_port)
    result, image = cam.read()
    if result:
        cv2.imwrite(path+"Images/"+str(imageName)+".jpg", image)
    else:
        print("Cannot take pic!")

def formatYolov5(frame):
    """
    Çerçeveyi YOLOv5 formatına dönüştürür.

    Args:
        frame (numpy.ndarray): Dönüştürülecek çerçeve.

    Returns:
        numpy.ndarray: YOLOv5 formatına dönüştürülmüş çerçeve.
    """
    row, col, _ = frame.shape
    _max = max(col, row)
    result = np.zeros((_max, _max, 3), np.uint8)
    result[0:row, 0:col] = frame
    return result

def proofPic():
    """
    Önce ve sonra kapatılmış fotoğrafları birleştirir ve kanıt fotoğrafı oluşturur.

    Returns:
        None
    """
    beforeClosed = Image.open(path+"Images/beforeClosed.jpg")
    beforeClosed = beforeClosed.resize((320,240))
    afterClosed = Image.open(path+"Images/afterClosed.jpg")
    afterClosed = afterClosed.resize((320,240))
    
    result = Image.new('RGB', (320, 480),color="white")
    result.paste(im=beforeClosed, box=(0, 0))
    result.paste(im=afterClosed, box=(0, 240))
    result.save(path+"Images/proofPic.jpg")

def startDetection(statusName):
    """
    Nesne tespiti yapar ve sonuçları görselleştirir.

    Args:
        statusName (str): Tespitin yapıldığı durum adı.

    Returns:
        None
    """
    start = time.time()
    allProductsArray = []

    image = cv2.imread(path+"Images/"+str(statusName)+".jpg")
    image = cv2.imread(path+"Images/1.jpg")

    img = formatYolov5(image)
    net = cv2.dnn.readNet(path+"Config/brainfood.onnx")
    blob = cv2.dnn.blobFromImage(img , 1/255.0, (640, 640), swapRB=True)
    net.setInput(blob)
    predictions = net.forward()
    classList = []

    with open(path+"Config/obj.names", "r") as f:
        classList = [cname.strip() for cname in f.readlines()]
    
    # Diğer işlemler burada devam eder...

    print(time.time()-start)
    cv2.imshow("Image", img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()