关于OPENCV二值化的有关问题

【求助】关于OPENCV二值化的问题!
本帖最后由 u010266462 于 2013-04-12 13:35:51 编辑

#include "stdafx.h"   
#include"cv.h"   
#include"highgui.h"   
#include"stdio.h"   
  
  
// 实现将拍下来的图片缩放一倍   
IplImage* DoPyrDown(IplImage* image, int filter = IPL_GAUSSIAN_5x5)  
{  
    // 设置大小缩小一倍   
    CvSize size = cvSize(image->width / 2,image->height / 2);  
    //初始化图片   
    IplImage* outImage = cvCreateImage(size,image->depth,image->nChannels);  
    //实现缩放   
    cvPyrDown(image,outImage);  
    cvReleaseImage(&image);  
    return outImage;  
}  
  
  
int main(int argc, char** argv)  
{  
    cvNamedWindow("vedio");  
    CvCapture* capture;  
     // 首先是要通过摄像设备来得到一个CvCapture对象   
    if(1 == argc)  
    {  
        capture = cvCreateCameraCapture(0);  
    }  
    else  
    {  
        capture = cvCreateCameraCapture(atoi(argv[1]));  
    }  
  
    assert(NULL != capture);  
  
    IplImage* frame;  
  
    char keyCode;  
    // 每隔30ms捕捉一次视频图像   
    // 可以设为while(1)  使得实时捕捉视频画面   
    while((keyCode = cvWaitKey(30)))  
    {  
        //表示按下了ESC键,退出   
        if(keyCode == 27)  
        {  
            break;  
        }  
        // 得到摄像设备的下一帧图像   
        frame = cvQueryFrame(capture);  
        if(!frame)  
        {  
            break;  
        }  
IplImage* outImage = cvCreateImage(cvGetSize(frame),frame->depth,frame->nChannels);  
  //将原图拷贝过来   
        cvCopy(frame,outImage,NULL);  
outImage = DoPyrDown(outImage);
char* outImageName = "test.jpg";  
cvSaveImage(outImageName,outImage);
        cvShowImage("vedio",frame);  

    }