def get_img(): print("Sto scattando una foto...") camera = picamera.PiCamera() camera.start_preview() camera.annotate_text = data_ora.data_ora_attuale() time.sleep(5) camera.resolution = (500, 600) camera.capture( '/home/pi/FliesFree/Programma_Prova2_Raspberry/Trappola/%s.jpg' % data_ora.data_ora_attuale()) camera.stop_preview() print("Foto scattata.")
def visual_scatto(): print("Visualizzazione scatto") img = cv.imread( '/home/pi/FliesFree/Programma_Prova2_Raspberry/Trappola/%s.jpg' % data_ora.data_ora_attuale()) cv.imshow('Scatto', img) cv.waitKey(0)
def visual_scatto(): print("Visualizzazione scatto") img = cv.imread( '/home/pi/FliesFree/Prove/Prove_Python/Flies_Free_Prova1/Trappola/%s.jpg' % data_ora.data_ora_attuale()) cv.imshow('Scatto', img) cv.waitKey(0)
def get_img(): print("Sto scattando una foto...") camera = PiCamera() camera.start_preview() camera.annotate_text = data_ora.data_ora_attuale() time.sleep(5) camera.capture('/home/pi/FliesFree/Prove/Prove_Python/Flies_Free_Prova1/Trappola/%s.jpg' % data_ora.data_ora_attuale()) camera.stop_preview() print("Foto scattata.")
def frammenta(): invio.invio_dongle("codice",1) image = 'Risultati/result_%s.jpg'%data_ora.data_ora_attuale() #image = 'Risultati/result_2018_2_25_13.jpg' #-------------Converte immagine in base64 e conta i caratteri che la compongono---- image_64 = base64.encodestring(open(image,"rb").read()) print(image_64) print(len(image_64)) num = len(image_64) #Numero caratteri composti dall'immagine #num = 1000 dec = 0 #Contatore per pacchettidi stringhe nuova_stringa = "" #---Ciclo per creazione pacchetti di stringhe e rimozione dei caratteri che non vengono letti dalle dongle---- for n in range(0,num): print(n) time.sleep(0.2) if n > 0: dec = dec+80 n = dec if n > num: break else: print(n) m = n+80 if m > num: m = num nuova_stringa = image_64[n:m].replace("/","_") nuova_stringa = nuova_stringa.replace("\n","") nuova_stringa = nuova_stringa.replace("=",".") print(nuova_stringa) invio.invio_dongle("image",nuova_stringa) #time.sleep(0.05) else: #print(m) nuova_stringa = image_64[n:m].replace("/","_") nuova_stringa = nuova_stringa.replace("\n","") nuova_stringa = nuova_stringa.replace("=",".") print(nuova_stringa) invio.invio_dongle("image",nuova_stringa) #time.sleep(0.05) else: print(n) m = n+80 #print(m) nuova_stringa = image_64[n:m].replace("/","_") nuova_stringa = nuova_stringa.replace("\n","") nuova_stringa = nuova_stringa.replace("=",".") print(nuova_stringa) invio.invio_dongle("image",nuova_stringa) #time.sleep(0.05) print("----Frammentazione conclusa---") invio.invio_dongle("onoff","1")
def preleva_lista(): controllo = 0 cod = 0 ident = 0 contr = 0 for n in range(0, 40): db = MySQLdb.connect(host="localhost", user="******", passwd="root", db="Logs") cur = db.cursor() cur.execute("SELECT id,onoff,codice FROM `11` WHERE onoff=1") for row in cur.fetchall(): cod = row[2] controllo = row[1] ident = row[0] print(cod) print(controllo) print(ident) if cod > 0 and controllo == 1 and contr == 0: sql = "SELECT * FROM `11` WHERE id>1 and codice=" cod = repr(cod) sql = sql + cod ident = repr(ident) ident = ident.replace("L", "") sql2 = " and id<" + ident sql = sql + sql2 print(sql) cur.execute(sql) #cur.execute("DELETE FROM Logs.`11` WHERE `id`>1") image_64 = "" for row in cur.fetchall(): if row[5] <> "0": image_64 = image_64 + row[5] image_64 = image_64.replace("_", "/") image_64 = image_64.replace(".", "=") print(image_64) base_64_decode = base64.decodestring(image_64) immagine = open( "Risultati/result_slave_%s.png" % data_ora.data_ora_attuale(), "wb") immagine.write(base_64_decode) immagine.close() #cur.execute("DELETE FROM `11` WHERE id>1") contr = 1 print("Immagine elaborata!") db.close() time.sleep(10)
def trova_mosche(): print("Ricerca mosche in corso...") img_rgb = cv.imread('/home/pi/FliesFree/Prove/Prove_Python/Flies_Free_Prova1/Trappola/%s.jpg' %data_ora.data_ora_attuale()) img_gray = cv.cvtColor(img_rgb, cv.COLOR_BGR2GRAY) template1 = cv.imread('/home/pi/FliesFree/Prove/Prove_Python/Flies_Free_Prova1/Mosche/mosca1.jpg',0) template2 = cv.imread('/home/pi/FliesFree/Prove/Prove_Python/Flies_Free_Prova1/Mosche/mosca2.jpg',0) w, h = template1.shape[::-1] w2, h2 = template2.shape[::-1] #----------Il confronto avviene su due immagini campioni---------- res1 = cv.matchTemplate(img_gray,template1,cv.TM_CCOEFF_NORMED) res2 = cv.matchTemplate(img_gray,template2,cv.TM_CCOEFF_NORMED) threshold = 0.8 loc = np.where( res1 >= threshold)#Matrice di immagine loc2 = np.where( res2 >= threshold)#Matrice di immagine num_mosche = 0 #numero delle mosche trovate num_cicli = 0 #numero di cicli conf = 0 #Variabile di confronto per poter contare i numero di rettangoli #Vengono evidenziate le zone dove sono state riscontrate delle mosche for pt in zip(*loc[::-1]): #------Algortitmo conteggio mosche------- if num_cicli == 0: conf = pt[0] num_cicli = num_cicli + 1 num_mosche = num_mosche + 1 else: num_cicli = num_cicli + 1 if (conf-30)<pt[0] and (conf+30)>pt[0]: conf = pt[0] else: num_mosche = num_mosche + 1 conf = pt[0] #----------------------------------------- cv.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,0,255), 1) num_cicli = 0 #Riposto a zero i numero di cicli per ricominciare la conta for pt2 in zip(*loc2[::-1]): #------Algortitmo conteggio mosche------- if num_cicli == 0: conf = pt[0] num_cicli = num_cicli + 1 num_mosche = num_mosche + 1 else: num_cicli = num_cicli + 1 if (conf-30)<pt[0] and (conf+30)>pt[0]: conf = pt[0] else: num_mosche = num_mosche + 1 conf = pt[0] #----------------------------------------- cv.rectangle(img_rgb, pt2, (pt2[0] + w2, pt2[1] + h2), (0,0,255), 1) #Viene salvata l'immagine con le relative mosche evidenziate cv.imwrite('Risultati/result_%s.png'%data_ora.data_ora_attuale(),img_rgb) print("Ricerca mosche coompletata...") print("Mosche trovate:") print(num_mosche) num_mosche = 0 #Riposrto a zero il numero delle mosche per una conta futura
import cattura_immagine import elabora_immagine import invio_web_server as invio import data_ora as d import dati_db #Cattura immagine tramite scatto con la PiCamera cattura_immagine.get_img() #Elaora l'immagine con un algoritmo OpenCV elabora_immagine.trova_mosche() #Invia il risultato della foto sul server url_foto = 'Risultati/result_%s.png' % d.data_ora_attuale() invio.invio_foto(url_foto) #Preleva dati dal db per comporre l'immagine dati_db.preleva_lista() dati_db.svuota_lista()