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);
}
}
#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);
}
}
相关文章推荐
- 新安装的centos不能用yum安装nginx解决办法
- openstack常用命令
- opencv 视屏播放并控制
- 网站访问细节
- linux下chown的用法
- kai-linux 实现MITM攻击
- 【学神-RHEL7】1-4-1-Linux文件管理和恢复误删除的文件
- opencv 学习记录
- linux注意事项
- LINUX 下安装跳鱼软件
- 110 Which options would you consider while configuring a flash recovery area (fast recovery area in
- CentOS/RedHat系统磁盘分区基本要求及分区方案
- 程序调用ShellExecuteEx打开其他程序(兼容UAC获取管理员权限)
- Linux-Centos 安装shutter截图软件
- <关于数据仓库>基于docker的Mysql与Hadoop/Hive之间的数据转移 (使用Apache Sqoop™)
- delphi 打开文件夹并定位到一个文件(使用ShellExecute时加一个select参数,原来这么简单!)
- Ubuntu 从14.10升级到15.10
- Codeforces Round #278 (Div. 1) B. Strip(Dp+multiset维护)
- poj 2112 Optimal Milking 二分图多重匹配
- Linux显示中文乱码解决方法