giovedì 20 febbraio 2020

OpenCV Houghes Circles and Gui test






===============================================
import cv2
import numpy as np

alpha_slider_max = 20
title_window = 'Conteggio eventi'

def on_trackbar(val):
    #img = originale.copy()
    #cv2.rectangle(img,(0,0),(100,100),(255,255,255),-1)
    
    t1 = cv2.getTrackbarPos(trackbar_name, title_window)
    t2 = cv2.getTrackbarPos(trackbar_name_2, title_window)
    t3 = cv2.getTrackbarPos(trackbar_name_3, title_window)

    par1 = cv2.getTrackbarPos(trackbar_name_4, title_window)
    par2 = cv2.getTrackbarPos(trackbar_name_5, title_window)

    #print(str(t1))
    #print(str(t2))
    #contrasto
    img = originale.copy()
    contrast = t3
    f = 131*(contrast+127)/(127*(131-contrast))
    alpha_c = f
    gamma_c = 127*(1-f)
    img_con = cv2.addWeighted(img,alpha_c,img,0,gamma_c)
    #img_con = f*(img)+127*(1-f)
    cv2.imshow("contrasto",img_con)

    #img=originale.copy()
    gray = cv2.cvtColor(img_con, cv2.COLOR_BGR2GRAY)
    img_blur = cv2.medianBlur(gray, 5)
    circles = cv2.HoughCircles(img_blur, cv2.HOUGH_GRADIENT, 1, img.shape[0]/64, param1=par1, param2=par2, minRadius=t1+1, maxRadius=t2+1)
    conta = 0
    if circles is not None:
    circles = np.uint16(np.around(circles))
    for i in circles[0, :]:
conta=conta+1
        cv2.circle(img_con, (i[0], i[1]), 2, (0, 0, 255), 2)

    font = cv2.FONT_HERSHEY_SIMPLEX
    cv2.putText(img, "{:.0f}".format(conta) ,(10,15), font, 0.5,(255,0,0),2,1)
    cv2.imshow(title_window,img_con)
    #print ("Numero identificazioni :"+str(conta))
    #print(str(val))

global originale

originale = cv2.imread('cr39film.png', cv2.IMREAD_COLOR)
gray = cv2.cvtColor(originale, cv2.COLOR_BGR2GRAY)


cv2.namedWindow(title_window)
trackbar_name = 'MinRadius x %d' % alpha_slider_max
trackbar_name_2 = 'MaxRadius x %d' % alpha_slider_max
trackbar_name_3 = 'Contrasto x %d' % 127

trackbar_name_4 = 'Par 1 x %d' % alpha_slider_max
trackbar_name_5 = 'Par 2 x %d' % alpha_slider_max


cv2.createTrackbar(trackbar_name_2, title_window , 5, alpha_slider_max, on_trackbar)
cv2.createTrackbar(trackbar_name, title_window , 1, alpha_slider_max, on_trackbar)
cv2.createTrackbar(trackbar_name_3, title_window , 1, 127, on_trackbar)
cv2.createTrackbar(trackbar_name_4, title_window , 1, 50, on_trackbar)
cv2.createTrackbar(trackbar_name_5, title_window , 1, 5, on_trackbar)


on_trackbar(5)
cv2.waitKey()
cv2.destroyAllWindows()

Nessun commento:

Posta un commento

Physics informed neural network Fukuzono

Visto che puro ML non funziona per le serie tempo di cui mi sto occupando ed le regressioni basate su formule analitiche mostrano dei limiti...