心得:真好玩
程式碼:#include <stdio.h>
程式碼:#include <stdio.h>
#include <cv.h>
#include <highgui.h>
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
int main()
{
CvCapture *capture;
IplImage* dst = NULL;
IplImage* pImg = NULL;
IplImage* pImg2 = NULL;
IplImage* gray = NULL;
IplImage* bw = NULL;
IplImage* pCannyImg = NULL;
double scale=4;
CvSize dst_cvsize;
capture=cvCreateCameraCapture( 0 );
pImg=cvQueryFrame(capture);
dst_cvsize.width=(int)(pImg->width*scale);
dst_cvsize.height=(int)(pImg->height*scale);
dst=cvCreateImage(dst_cvsize,pImg->depth,pImg->nChannels);
pImg2 = cvCreateImage(cvSize(pImg->width,pImg->height), IPL_DEPTH_8U, 3);
gray = cvCreateImage(cvSize(pImg->width,pImg->height), IPL_DEPTH_8U, 1);
bw = cvCreateImage(cvSize(pImg->width,pImg->height), IPL_DEPTH_8U, 1);
pCannyImg = cvCreateImage(cvGetSize(pImg), IPL_DEPTH_8U, 1);
cvNamedWindow("src", 1);
cvNamedWindow("src2",1);
cvNamedWindow("blackwhite", 1);
cvNamedWindow("gray",1);
cvNamedWindow("canny",1);
cvNamedWindow("Webcam",1);
while(1)
{
pImg=cvQueryFrame(capture);
cvResize(pImg,dst,CV_INTER_NN);
cvCvtColor(pImg, gray, CV_BGR2GRAY);
cvThreshold( gray, bw, 63, 255, CV_THRESH_BINARY );
cvThreshold( pImg, pImg2, 127, 255, CV_THRESH_BINARY );
cvCanny(gray, pCannyImg, 50, 150, 3);
//顯示圖像
cvShowImage( "src", pImg );
cvShowImage( "Webcam", dst );
cvShowImage( "src2", pImg2 );
cvShowImage( "gray", gray );
cvShowImage( "blackwhite", bw );
cvShowImage( "canny", pCannyImg );
cvWaitKey(20);
}
//銷毀視窗
cvDestroyWindow( "src" );
cvDestroyWindow( "Webcam" );
cvDestroyWindow( "src2" );
cvDestroyWindow( "canny" );
cvDestroyWindow( "blackwhite" );
cvDestroyWindow( "gray" );
//釋放圖像
cvReleaseImage( &pImg );
cvReleaseImage( &dst );
cvReleaseImage( &pImg2 );
cvReleaseImage( &gray);
cvReleaseImage( &bw );
cvReleaseImage( &pCannyImg );
cvReleaseCapture(&capture);
}
沒有留言:
張貼留言