def runKmeans(self, img, rect, k): img = cv2.imread(img) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) clusters = k bar, porcentagens = ut.toKmeans(ut.black_back(img, rect), clusters) contaminacao = (porcentagens[-1]*100) / \ reduce(operator.add, porcentagens) folha_doenca = round(reduce(operator.add, porcentagens), 2) # print(porcentagens) # print("Folha + Doença: {}".format(round(reduce(operator.add, porcentagens), 2))) # print("Contaminação de {}%".format(round(contaminacao, 2))) return [folha_doenca, contaminacao]
import cv2 import numpy as np import utils as ut from matplotlib import pyplot as plt img = '/home/brito/Documentos/Dev/tcc/img/f1.jpeg' img = cv2.imread(img) rect = (430, 196, 800, 310) green = [57, 79, 42] dark_green = [21, 34, 20] rust = [99, 90, 20] diff = 20 leaf_area = (ut.color_filter(ut.black_back(img, rect), rust, diff) + ut.color_filter(ut.black_back(img, rect), green, diff) + ut.color_filter(ut.black_back(img, rect), dark_green, diff)) / ( img.size / 3) percent_leaf = np.round(leaf_area * 100, 2) print(percent_leaf) # cv2.imshow("Img", ) # cv2.waitKey(0)
from sklearn.cluster import KMeans from sklearn import metrics from scipy.spatial.distance import cdist import numpy as np import matplotlib.pyplot as plt import utils as ut import cv2 img = '/home/brito/Documentos/Dev/tcc/img/f1.jpeg' img = cv2.imread(img) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) rect = (430, 196, 800, 310) img = ut.black_back(img, rect) img = img.reshape((img.shape[0] * img.shape[1], 3)) # k means determine k distortions = [] hist_all = [] K = range(1, 10) for k in K: kmeanModel = KMeans(n_clusters=k).fit(img) kmeanModel.fit(img) hist_all.append(ut.centroid_histogram(kmeanModel)) distortions.append( sum( np.min(cdist(img, kmeanModel.cluster_centers_, 'euclidean'), axis=1)) / img.shape[0]) # Plot the elbow plt.plot(K, distortions, 'bx-')
import cv2 import numpy as np import utils as ut import operator from matplotlib import pyplot as plt from functools import reduce from sklearn.cluster import KMeans import os ut.convert_file() img = cv2.imread('/home/alvaro/Coffee_Recognize_API/img_hsv/fitossanidade.png') rect = (188, 224, 382, 687) clusters = 5 results = [] bar, porcentagens = ut.toKmeans(ut.black_back(img, rect), clusters) contamination = (porcentagens[-1] * 100) / reduce(operator.add, porcentagens) leaf_disease = round(reduce(operator.add, porcentagens), 2) contamination = round(contamination, 2) results.append(leaf_disease) results.append(contamination) print(results)
import cv2 import numpy as np import utils as ut from matplotlib import pyplot as plt img = '/home/brito/Documentos/Dev/tcc/img/f1.jpeg' img = cv2.imread(img) rect = (430, 196, 800, 310) green = [57, 79, 42] # RGB dark_green = [21, 34, 20] rust = [99, 90, 20] diff = 20 cv2.imshow("Img", ut.color_filter(ut.black_back(img, rect), rust, diff)) cv2.waitKey(0)