构建代码
import cv2
import numpy as np
from matplotlib import pyplot as plt
import time
判断颜色
def findNoneZero(image):
rows,cols,_= image.shape
img11 = image[4:rows-4,4:cols-4]
nonzero = img11.nonzero()
nonzeroy = np.array(nonzero[0])
nonzerox = np.array(nonzero[1])
return len(nonzeroy)
def get_thresh_image(rgb_image,display):
'''
Determines the red , green and yellow content in each image using HSV and experimentally
determined thresholds. Returns a Classification based on the values
'''
hsv = cv2.cvtColor(rgb_image,cv2.COLOR_BGR2HSV)
lower_red1 = np.array([0, 69, 165])
upper_red1 = np.array([10, 255, 255])
lower_red2 = np.array([125, 49, 138])
upper_red2 = np.array([180, 255, 255])
lower_orange = np.array([11, 81, 148])
upper_orange = np.array([25, 255, 255])
lower_yellow = np.array([11, 67, 127])
upper_yellow = np.array([34, 255, 255])
lower_green = np.array([35, 25, 151])
upper_green = np.array([124, 255, 255])
mask_red1 = cv2.inRange(hsv, lower_red1,upper_red1)
mask_red2 = cv2.inRange(hsv, lower_red2,upper_red2)
mask_orange = cv2.inRange(hsv, lower_orange,upper_orange)
mask_yellow = cv2.inRange(hsv