2016-05-18 5 views
0

Я получаю эту ошибку:OpenCV оператор кэнний Python

OpenCV Error: Unsupported format or combination of formats() in unknown function, file C:\slave\WinInstallerMegaPack\src\opencv\modules\imgproc\src\canny.cpp, line 67 Traceback (most recent call last): edges= cv2.Canny(frame,100,100) cv2.error : C:\ slave\WinInstallerMegaPack\srx\opencv\modules\imgproc\src\canny.cpp:67: error: (-210)

Когда я запускаю этот код:

import cv2 
import numpy as np 

cap = cv2.VideoCapture(0) 

while(1): 
    _, frame = cap.read()  
    cv2.imshow('Original',frame) 
    edges = cv2.Canny(frame,100,100) 
    cv2.imshow('Edges',edges) 
    k = cv2.waitKey(5) & 0xFF 
    if k == 27: 
     break 

cv2.destroyAllWindows() 
cap.release() 
+0

Пожалуйста, мне нужна информация, срочно! спасибо – TrikiAmine

+0

'frame' должен быть в оттенках серого. Используйте 'cv2.cvtColor (... cv2.COLOR_BGR2GRAY)', прежде чем позвонить Canny – Miki

+0

большое вам спасибо !! идеально ! – TrikiAmine

ответ

0

Канне нужно черно-белое изображение в качестве входных данных, но ваш frame является 3 каналом (BGR) изображение. Вы должны преобразовать его в оттенках серого перед передачей его Осторожные:

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 
edges = cv2.Canny(gray, 100, 100) 

Как Замечание, помните, что Осторожные пороги используются для гистерезиса, так что вы можете установить first_threshold быть что-то вроде [0.25 - 0.5] * second_threshold

edges = cv2.Canny(gray, 100, 200) 
Смежные вопросы