Обнаружение пурпурной линии с помощью opencv в python - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь создать гоночного робота, который остановится на финишной линии (цвета пурпурный ). я попытался сделать это, преобразовав изображение в hsv, а затем замаскировав его, но он не работает, как ожидалось. Ваша помощь будет высоко оценена.

Код, который я написал:

import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while(True):
    ret,frame=cap.read()
    blurredimg = cv2.GaussianBlur(frame,(11,11),0)
    imghsv=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
    lowermagenta= np.array([0,50,50])
    uppermagenta= np.array([10,255,255])
    mask=cv2.inRange(imghsv,lowermagenta,uppermagenta)
    outputimg=frame.copy()
    outputimg[np.where(mask==0)]=0
    grayedimg = cv2.cvtColor(outputimg , cv2.COLOR_BGR2GRAY)
    cannyimg=cv2.Canny(grayedimg,75,150)
    ret,thresh = cv2.threshold(cannyimg,127,255,0)
    image , contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
    finallimg= cv2.drawContours(frame,contours, -1,(0,255,0),35)
    cv2.imshow('hyg' , finallimg)
    cv2.imshow('hyg1' , cannyimg)
    for x in range (0,480):
        red,green,blue=finallimg[x,150]
        if red==0 and green==255 and blue==0 :
            print('magenta line found')
            break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...