Ошибка с CV2.minareArect, дает мне ошибку, связанную с функцией выпуклого корпуса, которую я не использовалPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка с CV2.minareArect, дает мне ошибку, связанную с функцией выпуклого корпуса, которую я не использовал

Сообщение Anonymous »

В коде ниже я попытался выяснить, является ли объект зеленым цветом, и нарисовать вокруг него контур. С этой информацией я также хотел бы найти углы формы и обрезать ее, но я получаю ошибку, связанную с функцией Concexhull, которую я не использовал в коде. Я использовал Python 3 и OpenCV 3.2.0 < /p>

Код, который я написал, дает мне эту ошибку < /p>

Traceback (most recent call last):
File "/home/pi/Desktop/SelfDrivingCar/code/picamsense2.py", line 29, in
points = cv2.minAreaRect(contour)
error: /home/pi/opencv/opencv-3.2.0/modules/imgproc/src/convhull.cpp:136: error: (-215) total >= 0 && (depth == CV_32F || depth == CV_32S) in function convexHull
< /code>

Вот мой код < /p>

from picamera import PiCamera
import time
import cv2
import numpy as np 
camera = PiCamera()
camera.start_preview()
time.sleep(5)
camera.capture('/home/pi/Desktop/piImage/image.jpg')
camera.stop_preview()
img = cv2.imread('/home/pi/Desktop/piImage/image.jpg', 1)
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
lower = np.array([46, 100, 100])
upper = np.array([86, 255, 255])
mask = cv2.inRange (hsv, lower, upper)
blur = cv2.GaussianBlur(mask, (7,5),0 )
erosion =cv2.erode(blur, (5,5), iterations = 3)
contour =np.array( cv2.findContours(erosion, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)[1])
cv2.drawContours(img, contour, -1, (0,255,0), 3)
for cnt in contour:
    approx = cv2.approxPolyDP(cnt, 0.04*cv2.arcLength(cnt, True), True)
    if len (approx)== 3:
        print "triangle"
    elif len (approx) == 4 :
        print "quadrilateral"
    elif len(approx) > 4:
        print "circle"        
points = cv2.minAreaRect(contour)
points = cv2.boxPoints(points)
points = np.int0(points)
for p in points :
    pt = (p[0],p[1])
    print pt
print points
cv2.imshow('eroded', blur)
cv2.imshow('original', img)
while (1):
    k = cv2.waitKey(0)
    if(k == 27):
     break
cv2.destroyAllWindows()
< /code>

Я пытался найти исправление для тишины сейчас < /p>

Любая помощь будет оценена < /p>

>

Подробнее здесь: https://stackoverflow.com/questions/467 ... ction-whic
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»