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