您的位置:首页 > 编程语言 > Python开发

OpenCV 摄像头Canny边缘检测 (python)

2017-12-31 00:35 666 查看
import cv2
import numpy as np
cap = cv2.VideoCapture(0)

while True:
_,frame = cap.read()
# if frame.isEmpty():
#     break
frame=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
frame=cv2.blur(frame, (7,7))
frame=cv2.Canny(frame,0,30,3)
cv2.imshow("Pick Picture:",frame)
a=cv2.waitKey(30)
if a == 27:#exit
break

cap.release()
del cv2
del np

光线不足,效果不太好:




C++ 的实现代码,可以打开摄像头,但是好像不能读取帧,具体原因不清,仅作为记录!
#include"OpenCVLib.hpp"
#include<iostream>
using namespace cv;

int  main(){

VideoCapture capture(0);//摄像头
if(!capture.isOpened()){
std::cout << "cannot open camera" << std::endl;
return -1;
}

try{
while(true){
Mat frame;
capture >> frame;
imshow("Camera",frame);

if(frame.empty()){
break;
}

waitKey(30);

}
}
catch(Exception& e){
std::cout << "exception msg : " << e.what() << std::endl;
}

return 0;
}
错误如下:
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, fi
le C:\builds\2_4_PackSlave-win32-vc12-shared\opencv\modules\highgui\src\window.c
pp, line 261
exception msg : C:\builds\2_4_PackSlave-win32-vc12-shared\opencv\modules\highgui
\src\window.cpp:261: error: (-215) size.width>0 && size.height>0 in function cv:
:imshow
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: