Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import os
- import math
- import pandas as pd
- import cv2
- import csv
- from numpy import ndarray
- from Lista02 import FuncoesML as fun
- import matplotlib.pyplot as plt
- #lendo a imagem
- circles = []
- circles = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/circles/*.jpg',circles)
- ellipsis = []
- ellipsis = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/ellipses/*.jpg', ellipsis)
- hexagons = []
- hexagons = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/hexagons/*.jpg', hexagons)
- lines = []
- lines = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/lines/*.jpg', lines)
- rectangles = []
- rectangles = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/rectangles/*.jpg', rectangles)
- rhombuses = []
- rhombuses = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/rhombuses/*.jpg', rhombuses)
- squares = []
- squares = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/squares/*.jpg', squares)
- trapezia = []
- trapezia = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/trapezia/*.jpg', trapezia)
- triangles = []
- triangles = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/triangles/*.jpg', triangles)
- print('terminou load images')
- #circles = fun.resizeImages(circles,16,16)
- #convertendo para níveis de cinza
- # circleeee = circles[0]
- # circles = fun.grayConversion(circles)
- #
- # #aplicando o filtro gaussiano
- # circles = fun.blurConversion(circles,5, 0)
- #
- #
- # #convertendo para binária
- # circles = fun.binaryConversion(circles, 255, 31)
- #
- # #invertendo as cores
- # circles = fun.invertConversion(circles)
- # extraindo momentos da imagem
- '''
- im2, countours, hierachy = cv2.findContours(circles[0], cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
- cv2.drawContours(circleeee, countours, -1, (0,255,0), 3)
- cv2.imshow('ble',circleeee)
- cv2.waitKey()
- peri = cv2.arcLength(countours[0], True) # perimetro
- aproxx = cv2.approxPolyDP(countours[0], 0.04 * peri, True) # vertices
- print('Vertices list', aproxx)
- print('shape', aproxx.shape)
- print('dtype',aproxx.dtype)
- print('type',type(aproxx))
- x1 = ndarray.item(aproxx,(0,0,0)) # recupera o primeiro elemento do ndarray
- y1 = ndarray.item(aproxx,(0,0,1))
- x2 = ndarray.item(aproxx,(1,0,0))
- y2 = ndarray.item(aproxx,(1,0,1))
- bla = np.reshape(aproxx, (aproxx.shape[0], (aproxx.shape[1]*aproxx.shape[2])))
- print('approxPolyDp resultado', aproxx)
- print('angle',fun.angleBetweenPoints(x1,y1,x2,y2))
- def angle3pt(a, b, c):
- """Counterclockwise angle in degrees by turning from a to c around b
- Returns a float between 0.0 and 360.0"""
- ang = math.degrees(
- math.atan2(c[1] - b[1], c[0] - b[0]) - math.atan2(a[1] - b[1], a[0] - b[0]))
- return ang + 360 if ang < 0 else ang
- if(len(bla) >= 3):
- for x in range(len(bla)):
- if x == 0:
- print("CASO INICIAL")
- bla3 = angle3pt(bla[x],bla[x+1],bla[len(bla)-1])
- print(bla3)
- #print("v0= ", bla[x][0] , ",", bla[x][1], " v1= ", bla[x+1][0],",", bla[x+1][1], " v2= ", bla[len(bla)-1][0], "," , bla[len(bla)-1][1])
- if x == len(bla)-1:
- print("CASO FINAL")
- bla4 = angle3pt(bla[x], bla[0], bla[x-1])
- print(bla4)
- print("v0= ", bla[x][0], ",", bla[x][1], " v1= ", bla[0][0], ",", bla[0][1], " v2= ", bla[x-1][0], "," , bla[x-1][1])
- if x > 0 and x < len(bla)-1 :
- print("RESTO DOS CASOS")
- bla5 = angle3pt(bla[x],bla[x+1],bla[x-1])
- print(bla5)
- bla5 = 0
- print("v0= ", bla[x][0], ",", bla[x][1], " v1= ", bla[x+1][0], ",", bla[x+1][1], " v2= ", bla[x-1][0], ",", bla[x - 1][1])
- cv2.imshow("a",circleeee)
- cv2.waitKey()
- print()
- print(bla[1][0])
- print('a = ',aproxx[len(aproxx) - 1][0],' ',aproxx[len(aproxx)-1][1])
- print('b = ',)
- print('angle',angle3pt((aproxx[len(aproxx) - 1][0],aproxx[len(aproxx)-1][1]),(aproxx[0][0],aproxx[0][1]),(aproxx[1][0],aproxx[1][1])))
- food = {'pizza': 324, 'sandwich': 78, 'hot dog': 90}
- food = list(dict.values(food))
- print(food)
- ble = fun.extratorCaracteristicas(circles)
- ble = pd.DataFrame(ble)
- print(ble)
- ble = fun.normalizar(ble)
- ble = ble.fillna(0)
- print(ble)
- vetor = [1,2,3,4,5,6,7,8,9,10]
- vetor2 = fun.selecionaImagens(vetor,3)
- print('vetor',vetor)
- print('vetor 2')
- print(vetor2)
- with open('C:/Users/Auricelia/Desktop/DataSetsML/Circles2.txt', 'w') as f:
- for item in circles2:
- f.write("%s\n" % item)
- for r in circles2:
- y = str(x)
- print('passou do str x')
- cv2.imwrite('C:/Users/Auricelia/Desktop/DataSetsML/Circles2/' + '%s' % y + '.jpg', r, cv2.IMWRITE_JPEG_QUALITY)
- x += 1
- x = 0
- for i in circles2:
- y = str(x)
- cv2.imwrite('C:/Users/Auricelia/Desktop/DataSetsML/Circles2/cir' + y + '.jpg',i)
- x += 1
- '''
- # circles2 = fun.selecionaImagens(circles,5)
- # fun.save_images(circles2,'C:/Users/Auricelia/Desktop/DataSetsML/Circles2/')
- # selecionando aleatoriamente 72 imagens de cada classe
- circles_selec, circles_naoselec = fun.seleciona_imagens(circles,72)
- squares_selec, squares_naoselec = fun.seleciona_imagens(squares,72)
- triangles_selec, triangles_naoselec = fun.seleciona_imagens(triangles,72)
- ellipsis_selec, ellipsis_naoselec = fun.seleciona_imagens(ellipsis,72)
- trapezia_selec, trapezia_naoselec = fun.seleciona_imagens(trapezia,72)
- rectangles_selec, rectangles_naoselec = fun.seleciona_imagens(rectangles,72)
- rhombuses_selec, rhombuses_naoselec = fun.seleciona_imagens(rhombuses,72)
- lines_selec, lines_naoselec = fun.seleciona_imagens(lines,72)
- hexagons_selec, hexagons_naoselec = fun.seleciona_imagens(hexagons,72)
- #Salvando em pastas diferentes as imagens para seleção de características e as de teste
- fun.save_images(circles_selec,'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomCircles/')
- fun.save_images(circles_naoselec,'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Circles/')
- fun.save_images(squares_selec,'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomSquares/')
- fun.save_images(squares_naoselec,'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Squares/')
- fun.save_images(triangles_selec,'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomTriangles/')
- fun.save_images(triangles_naoselec,'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Triangles/')
- fun.save_images(ellipsis_selec, 'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomEllipses/')
- fun.save_images(ellipsis_naoselec,'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Ellipses/')
- fun.save_images(trapezia_selec,'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomTrapezia/')
- fun.save_images(trapezia_naoselec,'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Trapezia/')
- fun.save_images(rectangles_selec,'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomRectangles/')
- fun.save_images(rectangles_naoselec, 'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Rectangles/')
- fun.save_images(rhombuses_selec,'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomRhombuses/')
- fun.save_images(rhombuses_naoselec, 'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Rhombuses/')
- fun.save_images(lines_selec, 'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomLines/')
- fun.save_images(lines_naoselec, 'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Lines/')
- fun.save_images(hexagons_selec, 'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomHexagons/')
- fun.save_images(hexagons_naoselec, 'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Hexagons/')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement