2013年2月28日 星期四

HW02

心得:真好玩

程式碼:#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);
}

沒有留言:

張貼留言