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

Regressione per illite su suoli naturali

Il dataset visto nel precedente post e' fornito anche da determinazione mineralogiche come la speciazione delle argille. Ho provato a ...