Пример #1
0
greenErrors = np.zeros((height, width))

for i in range(height):
    for j in range(width):
        yellowErros[i] = yellowGMM.getLogLikelihoodError(image[i,j])
        orangeErros[i] = orangeGMM.getLogLikelihoodError(image[i,j])
        greenErros[i] = greenGMM.getLogLikelihoodError(image[i,j])
'''

yellowMask = np.zeros((height, width)).astype('uint8')
orangeMask = np.zeros((height, width)).astype('uint8')
greenMask = np.zeros((height, width)).astype('uint8')

for i in range(height):
    for j in range(width):
        yellowError = yellowGMM.getLogLikelihoodError(image[i, j])
        orangeError = orangeGMM.getLogLikelihoodError(image[i, j])
        greenError = greenGMM.getLogLikelihoodError(image[i, j])

        if (yellowError > 12 and orangeError > 15 and greenError > 12):
            continue
        elif (yellowError == min(yellowError, orangeError, greenError)):
            yellowMask[i, j] = 255
        elif (orangeError == min(yellowError, orangeError, greenError)):
            orangeMask[i, j] = 255
        elif (greenError == min(yellowError, orangeError, greenError)):
            greenMask[i, j] = 255

yellowMask = cv2.erode(yellowMask, None, iterations=1)
yellowMask = cv2.dilate(yellowMask, None, iterations=2)