1

我收到此错误:

OpenCV 错误:未知函数中不支持的格式或格式组合(),文件 C:\slave\WinInstallerMegaPack\src\opencv\modules\imgproc\src\canny.cpp,第 67 行 Traceback(最后一次调用):edges= cv2 .Canny(frame,100,100) cv2.error : C:\slave\WinInstallerMegaPack\srx\opencv\modules\imgproc\src\canny.cpp:67: 错误: (-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()
4

1 回答 1

2

Canny 需要灰度图像作为输入,但您frame的是 3 通道 (BGR) 图像。在将其传递给 Canny 之前,您需要将其转换为灰度:

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

作为旁注,请记住 Canny 阈值用于滞后,因此您可能希望将 设置为first_threshold类似[0.25 - 0.5] * second_threshold

edges = cv2.Canny(gray, 100, 200) 
于 2016-05-18T12:14:19.753 回答