2016-05-18 16 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'はグレースケールでなければなりません。 Cannyを呼び出す前に 'cv2.cvtColor(... cv2.COLOR_BGR2GRAY)'を使用してください – Miki

+0

ありがとうございます!完璧! – TrikiAmine

答えて

0

キャニーは、入力としてグレースケール画像を必要とするが、あなたのframeは3チャンネル(BGRです)画像。あなたはキャニーに渡す前にグレースケールに変換する必要があり:追記として

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

、あなたが[0.25 - 0.5] * second_threshold

のようなものであることを first_thresholdを設定することもできますので、キャニーしきい値がヒステリシスのために使用されていることを覚えておいてください
edges = cv2.Canny(gray, 100, 200)