2020-02-18 06:47:42 +01:00
|
|
|
import numpy as np
|
|
|
|
import argparse
|
|
|
|
import cv2
|
|
|
|
from photoAnalysisUtils import *
|
|
|
|
|
2020-06-20 09:33:14 +02:00
|
|
|
def menuAnalyseIMG(url):
|
|
|
|
result_vector = []
|
|
|
|
img_tested = url
|
|
|
|
image = img_tested
|
|
|
|
|
|
|
|
|
|
|
|
blurred = cv2.GaussianBlur(image, (5, 5), 0)
|
|
|
|
edged = cv2.Canny(blurred, 20, 50)
|
|
|
|
height = image.shape[0]
|
|
|
|
width = image.shape[1]
|
|
|
|
|
|
|
|
referencePoint = open("referencePoint.txt", "r")
|
|
|
|
checkBoxesCords = open("checkBoxesCords.txt", "r")
|
|
|
|
referencePoint = referencePoint.readlines()
|
|
|
|
checkBoxesCords = checkBoxesCords.readlines()
|
|
|
|
|
|
|
|
|
|
|
|
for corners in referencePoint:
|
|
|
|
template_x, template_y = corners.split()
|
|
|
|
|
|
|
|
image, x, y = searchReferencePointCorner(image)
|
|
|
|
|
|
|
|
offsetX = int(template_x) - x
|
|
|
|
offsetY = int(template_y) - y
|
|
|
|
i=1
|
|
|
|
|
|
|
|
for checkBox in checkBoxesCords:
|
|
|
|
x, y, w, h = checkBox.split()
|
|
|
|
x = int(x) - offsetX
|
|
|
|
y = int(y) - offsetY
|
|
|
|
w = int(w)
|
|
|
|
h = int(h)
|
|
|
|
cv2.rectangle(image, (x, y), (x + w, y + h), (36, 255, 12), 2)
|
|
|
|
crop_img = edged[y:y + h, x:x + w]
|
|
|
|
n_white_pix = np.sum(crop_img == 255)
|
|
|
|
n_black_pix = np.sum(crop_img == 0)
|
|
|
|
if(n_white_pix+n_black_pix)*0.2 < n_white_pix:
|
|
|
|
#print(str(i)+" FILL")
|
|
|
|
result_vector.append([i, 1])
|
|
|
|
else:
|
|
|
|
#print(str(i)+" EMPTY")
|
|
|
|
result_vector.append([i, 0])
|
|
|
|
#print("White i ="+str(i)+" white = "+str(n_white_pix))
|
|
|
|
#print("Black i ="+str(i)+" black = "+str(n_black_pix))
|
|
|
|
#cv2.imwrite("maska"+str(i)+".jpg", crop_img)
|
|
|
|
i = i+1
|
|
|
|
|
|
|
|
|
|
|
|
cv2.imwrite("tested.jpg", image)
|
|
|
|
return result_vector
|
|
|
|
|
|
|
|
# img_tested = cv2.imread('orders/1.jpg')
|
|
|
|
# menuAnalyseIMG(img_tested)
|