Advertisement
11eimilia11

bleee

Feb 18th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.54 KB | None | 0 0
  1. import numpy as np
  2. import os
  3. import math
  4. import pandas as pd
  5. import cv2
  6. import csv
  7. from numpy import ndarray
  8. from Lista02 import FuncoesML as fun
  9. import matplotlib.pyplot as plt
  10.  
  11. #lendo a imagem
  12. circles = []
  13. circles = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/circles/*.jpg',circles)
  14.  
  15. ellipsis = []
  16. ellipsis = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/ellipses/*.jpg', ellipsis)
  17.  
  18. hexagons = []
  19. hexagons = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/hexagons/*.jpg', hexagons)
  20.  
  21. lines = []
  22. lines = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/lines/*.jpg', lines)
  23.  
  24. rectangles = []
  25. rectangles = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/rectangles/*.jpg', rectangles)
  26.  
  27. rhombuses = []
  28. rhombuses = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/rhombuses/*.jpg', rhombuses)
  29.  
  30. squares = []
  31. squares = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/squares/*.jpg', squares)
  32.  
  33. trapezia = []
  34. trapezia = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/trapezia/*.jpg', trapezia)
  35.  
  36. triangles = []
  37. triangles = fun.loadFiles('C:/Users/Auricelia/Desktop/DataSetsML/New_shapes_dataset/triangles/*.jpg', triangles)
  38. print('terminou load images')
  39.  
  40. #circles = fun.resizeImages(circles,16,16)
  41. #convertendo para níveis de cinza
  42.  
  43. # circleeee = circles[0]
  44. # circles = fun.grayConversion(circles)
  45. #
  46. # #aplicando o filtro gaussiano
  47. # circles = fun.blurConversion(circles,5, 0)
  48. #
  49. #
  50. # #convertendo para binária
  51. # circles = fun.binaryConversion(circles, 255, 31)
  52. #
  53. # #invertendo as cores
  54. # circles = fun.invertConversion(circles)
  55.  
  56. # extraindo momentos da imagem
  57. '''
  58. im2, countours, hierachy = cv2.findContours(circles[0], cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
  59. cv2.drawContours(circleeee, countours, -1, (0,255,0), 3)
  60. cv2.imshow('ble',circleeee)
  61. cv2.waitKey()
  62.  
  63.  
  64. peri = cv2.arcLength(countours[0], True)  # perimetro
  65.  
  66. aproxx = cv2.approxPolyDP(countours[0], 0.04 * peri, True)  # vertices
  67.  
  68.  
  69. print('Vertices list', aproxx)
  70. print('shape', aproxx.shape)
  71. print('dtype',aproxx.dtype)
  72. print('type',type(aproxx))
  73.  
  74. x1 = ndarray.item(aproxx,(0,0,0))         # recupera o primeiro elemento do ndarray
  75. y1 = ndarray.item(aproxx,(0,0,1))
  76. x2 = ndarray.item(aproxx,(1,0,0))
  77. y2 = ndarray.item(aproxx,(1,0,1))
  78.  
  79. bla = np.reshape(aproxx, (aproxx.shape[0], (aproxx.shape[1]*aproxx.shape[2])))
  80.  
  81. print('approxPolyDp resultado', aproxx)
  82. print('angle',fun.angleBetweenPoints(x1,y1,x2,y2))
  83. def angle3pt(a, b, c):
  84.    """Counterclockwise angle in degrees by turning from a to c around b
  85.        Returns a float between 0.0 and 360.0"""
  86.    ang = math.degrees(
  87.        math.atan2(c[1] - b[1], c[0] - b[0]) - math.atan2(a[1] - b[1], a[0] - b[0]))
  88.    return ang + 360 if ang < 0 else ang
  89.  
  90.  
  91. if(len(bla) >= 3):
  92.  
  93.    for x in range(len(bla)):
  94.  
  95.        if x == 0:
  96.            print("CASO INICIAL")
  97.            bla3 = angle3pt(bla[x],bla[x+1],bla[len(bla)-1])
  98.            print(bla3)
  99.            #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])
  100.  
  101.        if x == len(bla)-1:
  102.            print("CASO FINAL")
  103.            bla4 = angle3pt(bla[x], bla[0], bla[x-1])
  104.            print(bla4)
  105.            print("v0= ", bla[x][0], ",", bla[x][1], " v1= ", bla[0][0], ",", bla[0][1], " v2= ", bla[x-1][0], "," , bla[x-1][1])
  106.  
  107.        if x > 0 and x < len(bla)-1 :
  108.            print("RESTO DOS CASOS")
  109.            bla5 = angle3pt(bla[x],bla[x+1],bla[x-1])
  110.            print(bla5)
  111.            bla5 = 0
  112.            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])
  113.  
  114.  
  115. cv2.imshow("a",circleeee)
  116. cv2.waitKey()
  117. print()
  118. print(bla[1][0])
  119.  
  120.  
  121. print('a = ',aproxx[len(aproxx) - 1][0],' ',aproxx[len(aproxx)-1][1])
  122. print('b = ',)
  123. 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])))
  124.  
  125.  
  126.  
  127. food = {'pizza': 324, 'sandwich': 78, 'hot dog': 90}
  128. food = list(dict.values(food))
  129. print(food)
  130.  
  131. ble = fun.extratorCaracteristicas(circles)
  132. ble = pd.DataFrame(ble)
  133. print(ble)
  134. ble = fun.normalizar(ble)
  135. ble = ble.fillna(0)
  136. print(ble)
  137.  
  138. vetor = [1,2,3,4,5,6,7,8,9,10]
  139. vetor2 = fun.selecionaImagens(vetor,3)
  140. print('vetor',vetor)
  141.  
  142. print('vetor 2')
  143. print(vetor2)
  144.  
  145. with open('C:/Users/Auricelia/Desktop/DataSetsML/Circles2.txt', 'w') as f:
  146.    for item in circles2:
  147.        f.write("%s\n" % item)
  148.  
  149. for r in circles2:
  150.    y = str(x)
  151.    print('passou do str x')
  152.    cv2.imwrite('C:/Users/Auricelia/Desktop/DataSetsML/Circles2/' + '%s' % y + '.jpg', r, cv2.IMWRITE_JPEG_QUALITY)
  153.    x += 1
  154.    
  155.    x = 0
  156. for i in circles2:
  157.    y = str(x)
  158.    cv2.imwrite('C:/Users/Auricelia/Desktop/DataSetsML/Circles2/cir' + y + '.jpg',i)
  159.    x += 1
  160. '''
  161. # circles2 = fun.selecionaImagens(circles,5)
  162. # fun.save_images(circles2,'C:/Users/Auricelia/Desktop/DataSetsML/Circles2/')
  163.  
  164. # selecionando aleatoriamente 72 imagens de cada classe
  165.  
  166. circles_selec, circles_naoselec = fun.seleciona_imagens(circles,72)
  167. squares_selec, squares_naoselec = fun.seleciona_imagens(squares,72)
  168. triangles_selec, triangles_naoselec = fun.seleciona_imagens(triangles,72)
  169. ellipsis_selec, ellipsis_naoselec = fun.seleciona_imagens(ellipsis,72)
  170. trapezia_selec, trapezia_naoselec = fun.seleciona_imagens(trapezia,72)
  171. rectangles_selec, rectangles_naoselec = fun.seleciona_imagens(rectangles,72)
  172. rhombuses_selec, rhombuses_naoselec = fun.seleciona_imagens(rhombuses,72)
  173. lines_selec, lines_naoselec = fun.seleciona_imagens(lines,72)
  174. hexagons_selec, hexagons_naoselec = fun.seleciona_imagens(hexagons,72)
  175.  
  176. #Salvando em pastas diferentes as imagens para seleção de características e as de teste
  177. fun.save_images(circles_selec,'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomCircles/')
  178. fun.save_images(circles_naoselec,'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Circles/')
  179. fun.save_images(squares_selec,'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomSquares/')
  180. fun.save_images(squares_naoselec,'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Squares/')
  181. fun.save_images(triangles_selec,'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomTriangles/')
  182. fun.save_images(triangles_naoselec,'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Triangles/')
  183. fun.save_images(ellipsis_selec, 'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomEllipses/')
  184. fun.save_images(ellipsis_naoselec,'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Ellipses/')
  185. fun.save_images(trapezia_selec,'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomTrapezia/')
  186. fun.save_images(trapezia_naoselec,'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Trapezia/')
  187. fun.save_images(rectangles_selec,'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomRectangles/')
  188. fun.save_images(rectangles_naoselec, 'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Rectangles/')
  189. fun.save_images(rhombuses_selec,'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomRhombuses/')
  190. fun.save_images(rhombuses_naoselec, 'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Rhombuses/')
  191. fun.save_images(lines_selec, 'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomLines/')
  192. fun.save_images(lines_naoselec, 'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Lines/')
  193. fun.save_images(hexagons_selec, 'C:/Users/Auricelia/Desktop/DataSetsML/Random/RandomHexagons/')
  194. fun.save_images(hexagons_naoselec, 'C:/Users/Auricelia/Desktop/DataSetsML/Not_Random/Hexagons/')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement