Advertisement
LUKANDSP

Untitled

Oct 10th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.43 KB | None | 0 0
  1. #adicione seu codigo
  2. import cv2 as cv
  3. import numpy as np
  4. from matplotlib import pyplot as plot
  5.  
  6. def limiarizarParafusos(img):
  7.     quantLinhas = np.size(img, 0)
  8.     quantColunas = np.size(img, 1)
  9.  
  10.     imgSaida = np.zeros( (quantLinhas, quantColunas), dtype='uint8' )
  11.  
  12.     #inicio do seu codigo
  13.  
  14.     limiar = 181
  15.  
  16.     for linha in range(quantLinhas):
  17.         for coluna in range(quantColunas):
  18.             if img[linha][coluna] > limiar:
  19.                 imgSaida[linha][coluna] = 255
  20.             else:
  21.                 imgSaida[linha][coluna] = 0
  22.  
  23.     #fim do seu codigo
  24.     return imgSaida
  25.  
  26. img = cv.imread("img14.jpg", cv.IMREAD_GRAYSCALE)
  27. imgBin = limiarizarParafusos(img)
  28. plot.imshow(imgBin, cmap='gray')
  29.  
  30.  
  31. def limiarizarPorcas(img):
  32.     quantLinhas = np.size(img, 0)
  33.     quantColunas = np.size(img, 1)
  34.  
  35.     imgSaida = np.zeros( (quantLinhas, quantColunas), dtype='uint8' )
  36.  
  37.     #inicio do seu codigo
  38.  
  39.     limiar = 185
  40.     for linha in range(quantLinhas):
  41.         for coluna in range(quantColunas):
  42.             if img[linha][coluna] > limiar:
  43.                 imgSaida[linha][coluna] = 255
  44.             else:
  45.                 imgSaida[linha][coluna] = 0
  46.  
  47.                 #fim do seu codigo
  48.     return imgSaida
  49.  
  50.  
  51. img = cv.imread("img05.jpg", cv.IMREAD_GRAYSCALE)
  52. imgBin = limiarizarPorcas(img)
  53. plot.imshow(imgBin, cmap='gray')
  54.  
  55.  
  56. def contarParafusos(imgBin):
  57.     quantParafusos = 0
  58.  
  59.     #inicio do seu codigo
  60.     (numCC, imgLabel, stats, centroids) = cv.connectedComponentsWithStats(imgBin)
  61.     min = 780
  62.     max = 2500
  63.  
  64.     for cod in range(numCC):
  65.         if (stats[cod, cv.CC_STAT_AREA] >= min and stats[cod, cv.CC_STAT_AREA] <= max):
  66.             quantParafusos += 1
  67.     return quantParafusos
  68. print(contarParafusos(imgBin))
  69. plot.imshow(imgBin, cmap='gray')
  70.  
  71. def contarPorcas(imgBin):
  72.     quantPorcas = 0
  73.  
  74.     #inicio do seu codigo
  75.     (numCC, imgLabel, stats, centroids) = cv.connectedComponentsWithStats(imgBin)
  76.     min = 200
  77.     max = 700
  78.  
  79.     for cod in range(numCC):
  80.         if (stats[cod, cv.CC_STAT_AREA] >= min and stats[cod, cv.CC_STAT_AREA] <= max):
  81.             quantPorcas += 1
  82.     return quantPorcas
  83. print(contarPorcas(imgBin))
  84. plot.imshow(imgBin, cmap='gray')
  85.  
  86. arquivos = ["img01.jpg", "img02.jpg", "img03.jpg", "img04.jpg", "img05.jpg", "img06.jpg", "img09.jpg", "img10.jpg"]#, "img11.jpg", "img12.jpg", "img13.jpg", "img14.jpg", "img15.jpg", "img16.jpg", "img17.jpg", "img18.jpg", "img19.jpg", "img20.jpg", "img21.jpg", "img22.jpg", "img23.jpg", "img24.jpg", "img25.jpg"]
  87. parafusos = [10,10,10, 5,9,10,10,10,10,10]#,10,10, 10,10,7,10,7,10,10,10,8,9,10]
  88. porcas =    [10,10,10,10,9,10,10, 9, 10,10]#, 9,10,10,10,7,10,9,10,10,10,8,10,9]
  89.  
  90. acertosPorcas = 0
  91. acertosParafusos = 0
  92. acertos = 0
  93.  
  94. for i in range(len(arquivos)):
  95.     img = cv.imread(arquivos[i], cv.IMREAD_GRAYSCALE)
  96.  
  97.     imgBinParafusos = limiarizarParafusos(img)
  98.     contParafusos = contarParafusos(imgBinParafusos)
  99.  
  100.     imgBinPorcas = limiarizarPorcas(img)
  101.     contPorcas = contarPorcas(imgBinPorcas)
  102.  
  103.     if (porcas[i] == contPorcas):
  104.         acertosPorcas += contPorcas
  105.     if (parafusos[i] == contParafusos):
  106.         acertosParafusos += contParafusos
  107.     if (porcas[i] == contPorcas and parafusos[i] == contParafusos):
  108.         acertos += 1
  109.     else:
  110.         print("Falha:", arquivos[i], "Porcas:", contPorcas, "Parafusos:", contParafusos)
  111.  
  112.  
  113. #Resultado da validacao
  114. print("Taxa de acertos:", round((acertos/len(arquivos)*100),2))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement