您的位置:首页 > 运维架构

opencv 摄像头灰度处理及canny处理

2015-11-26 22:45 281 查看
#include <cv.h>

#include <cxcore.h>

#include <highgui.h>

#include"cv.h"

#include"highgui.h"

IplImage * doPyrDown(IplImage* in, int filter = IPL_GAUSSIAN_5x5)

{

assert(in->width % 2 == 0 && in->height % 2 == 0);

IplImage * out = cvCreateImage(cvSize(in->width / 2, in->height / 2), in->depth, in->nChannels);

cvPyrDown(in, out);

return (out);

};

IplImage* doCanny(IplImage* in, double low, double high, double aperture)

{

// if (in->nChannels != 1) return 0;

IplImage* out = cvCreateImage(

cvGetSize(in),

IPL_DEPTH_8U,

1);

cvCanny(in, out, low, high, aperture);

return (out);

};

IplImage* doGray(IplImage* in)

{

IplImage* out =

cvCreateImage(cvGetSize(in), IPL_DEPTH_8U, 1);

cvConvertImage(in, out, 1);

return (out);

}

void main()

{

cvNamedWindow("Video", CV_WINDOW_AUTOSIZE);

cvNamedWindow("Gray", CV_WINDOW_AUTOSIZE);

cvNamedWindow("Canny", CV_WINDOW_AUTOSIZE);

CvCapture * capture;

capture = cvCreateCameraCapture(0);

IplImage* in;

while (1){

in = cvQueryFrame(capture);

IplImage* img1 = doPyrDown(in );

IplImage* img2 = doGray(img1);

IplImage* img3 = doCanny(img1, 10,100,3);

//cvCvtColor(img, img1, CV_BGR2GRAY);

cvShowImage("Video", in);

cvFlip(img2,img2);

cvShowImage("Gray", img2);

// cvShowImage("Gray2", img2);

cvShowImage("Canny", img3);

char c = cvWaitKey(33);

if (c == 27)

{

break;

}

in = cvQueryFrame(capture);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: