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]
示例#2
0
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)
示例#3
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-')
示例#4
0
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)