OpenCV启动摄像头的资料
#include <opencv2/highgui/highgui.hpp>
02.#include <opencv2/imgproc/imgproc.hpp>
03.#include <opencv2/core/core.hpp>
04.
05.using namespace cv;
06.
07.
08.int main()
09.{
10. VideoCapture cap(0);
11. if(!cap.isOpened())
12. {
13. return -1;
14. }
15. Mat frame;
16. Mat edges;
17.
18. bool stop = false;
19. while(!stop)
20. {
21. cap>>frame;
22. cvtColor(frame, edges, CV_BGR2GRAY);
23. GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
24. Canny(edges, edges, 0, 30, 3);
25. imshow("当前视频",edges);
26. if(waitKey(30) >=0)
27. stop = true;
28. }
29. return 0;
30.}
2.000
Mat myFrame;
CvCapture* myCap = cvCaptureFromCAM(0);//从对摄像头的初始化捕获
if(!cvQueryFrame(myCap))
cout<<"Video capture failed, please check the camera."<<endl;
else
cout<<"Video camera capture status: OK"<<endl;
int width=cvSetCaptureProperty(myCap, CV_CAP_PROP_FRAME_WIDTH, 640);
int height= cvSetCaptureProperty(myCap, CV_CAP_PROP_FRAME_HEIGHT, 480);
for(;;) {
myFrame = cvQueryFrame(myCap);//frame 指向camera入帧
if(myFrame.empty())
break;
imshow("Video", myFrame);
if(cvWaitKey(100)>=0)
break;
}
3.
CvCapture*capture=0;
IplImage*frame,*frame_copy=0;
IplImage*image =0;
//plImage*imageData=0;
int i=0;
int j =0;
int k =0;
storage = cvCreateMemStorage(0); // 创建内存存储器
capture = cvCaptureFromCAM(0); // 创建视频读取结构
cvNamedWindow( "result", 1 );
if( capture ) // 如过是视频或摄像头采集图像,则循环处理每一帧
{
for(;;)
{
if( !cvGrabFrame( capture ))
break;
frame = cvRetrieveFrame( capture );
if( !frame )
break;
if( !frame_copy )
frame_copy = cvCreateImage( cvSize(640,480),IPL_DEPTH_8U, frame->nChannels );
int height =frame_copy->height;
int width =frame_copy->width;
int step = frame_copy->widthStep/sizeof(uchar);
int channels = frame_copy-> nChannels;
uchar* data = (uchar *)frame_copy->imageData;
f( frame->origin == IPL_ORIGIN_TL )
cvCopy( frame, frame_copy, 0 );
else
cvFlip( frame, frame_copy, 0 );