OpenCV学习
大唐游子
这个作者很懒,什么都没留下…
展开
-
利用OpenCV读入一个彩色视频文件并以灰度格式输出
#include "highgui.h"#include "cv.h"/** 读入一个彩色视频文件并以灰度格式输出这个视频文件* "学习OpenCV", P32, 例2-10* 2010-05-16*/ int main( int argc, char** argv ){ CvCapture* capture = 0; capture原创 2010-05-16 13:14:00 · 6518 阅读 · 5 评论 -
利用OpenCV检测手掌(palm)和拳头(fist)
思路:利用训练好的palm.xml和fist.xml文件,原创 2014-08-13 22:40:00 · 12083 阅读 · 9 评论 -
用opencv检测convexity defects
一 概念:Convexity hull, Convexity defects 如上图所示,黑色的轮廓线为convexity hull, 而convexity hull与手掌之间的部分为convexity defects. 每个convexity defect区域有四个特征量:起始点(startPoint),结束点(endPoint),距离convexity hull最远点(原创 2014-08-05 23:14:08 · 27520 阅读 · 2 评论 -
OpenCV中掩膜操作(mask)实例
#include #include #include using namespace cv;using namespace std;void Sharpen(const Mat& myImage, Mat& Result){ CV_Assert(myImage.depth() == CV_8U); // accept only uchar images Resu原创 2014-07-09 22:32:41 · 11299 阅读 · 1 评论 -
OpenCV 从视频或摄像头中读取图像示例
#include #include #include using namespace cv;#include using namespace std;int main(int argc, const char *argv[]) { // Get filename to the source image: if (argc != 2) { cout " << endl;原创 2014-06-17 09:00:10 · 5404 阅读 · 1 评论 -
Mat转换成IplImage类型
Mat 类有一个运算符函数class原创 2014-04-21 21:43:16 · 34676 阅读 · 2 评论 -
对OpenCV mat进行水平和垂直方向的投影
#include #include using namespace cv;using namespace std;void HorizonProjection(const Mat& src, Mat& dst){ // accept only char type matrices CV_Assert(src.depth() != sizeof(uchar)); dst.cr原创 2014-03-23 21:39:53 · 9369 阅读 · 0 评论 -
OpenCV从摄像头读取视频
#include #include #include using namespace cv;using namespace std;int main(int argc, char* argv[]){ VideoCapture cap(0); if(!cap.isOpened()){ printf("Open camera/video failed.\n"); retur原创 2014-03-21 22:56:06 · 1064 阅读 · 0 评论 -
Gamma校正及其OpenCV实现
参考:[1]http://www.cambridgeincolour.com/tutorials/gamma-correction.htm[2]http://en.wikipedia.org/wiki/Gamma_correction 一、什么是Gamma校正?Gamma校正是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系:[2]这个指数即为G原创 2013-01-01 17:05:38 · 43681 阅读 · 8 评论 -
OpenCV从Mat中提取某些行或列
Mat的rowRange和colRange可以获取某些范围内行或列的指针:Mat::rowRangeCreates a matrix header for the specified row span.C++: Mat Mat::rowRange(int startrow, int endrow) constC++: Mat Mat::rowRang原创 2014-03-17 20:53:58 · 41715 阅读 · 4 评论 -
Gamma校正及其实现
图2中左图为原图,中图为gamma = 1/2.2在校正结果,原图中左半侧的灰度值较高,右半侧的灰度值较低,经过gamma = 1/2.2校正后(中图),左侧的对比度降低(见胡须),右侧在对比度提高(明显可以看清面容),同时图像在的整体灰度值提高。右图为gamma = 2.2在校正结果,校正后,左侧的对比度提高(见胡须),右侧在对比度降低(面容更不清楚了),同时图像在的整体灰度值降低。原创 2014-03-09 13:11:15 · 35361 阅读 · 1 评论 -
通过傅里叶变换方法求图像卷积-OpenCV实现
在图像处理中经常会遇到各种滤波(平滑、锐化)的情况,基本方法都是将图像与一个核进行卷积实现。而卷积定理指出,两个函数的卷积的傅里叶变换等于各自的傅里叶变换的乘积,即:[1]那么,两个函数的卷积可以通过如下方式得到,对两个函数傅里叶变换的乘积做傅里叶反变换,即:[1]在进行卷积运算时,一般是将核沿着图像从左到右从上到下计算每一个像素处与核卷积后的值,这样的计算量较大,原创 2014-01-28 22:14:45 · 17713 阅读 · 2 评论 -
OpenCV实现从图像中选择矩形区域并保存
根据《Learning OpenCV》中的example4.1改写:// An example program in which the// user can draw boxes on the screen.////#include //#include #include "opencv2/imgproc/imgproc.hpp"#include "opencv2/hig原创 2014-01-14 21:31:21 · 20793 阅读 · 1 评论 -
从摄像头中检测脸并保存图像
改写自:http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html #include "opencv2/objdetect/objdetect.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/im原创 2014-01-21 23:03:09 · 2030 阅读 · 0 评论 -
OpenCV实现resize和crop当前文件夹下所有图片
使用方法:从命令行指定resize的width和height,输入命令"resize_imgages width height"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"#include #include #include using namespace cv;us原创 2014-01-21 21:40:11 · 12847 阅读 · 0 评论 -
彩色直方图均衡的OpenCV实现
参考:http://blog.csdn.net/abcjennifer/article/details/7428737原理:将RGB空间转换为YUV(YCrCb)空间,对Y分量进行直方图均衡,再转换成RGB空间。转换成RGB空间主要为了方便用imshow显示,imshow好像无法直接正常显示YUV格式的图像(?待考)代码:#include "opencv2/imgproc/imgpro原创 2012-12-25 22:01:03 · 3908 阅读 · 1 评论 -
用固定数据创建CvMat矩阵并打印
<br /><br />1、 题目:用固定数据创建CvMat矩阵并打印。<br />2、 有两种方法用固定数据创建CvMat矩阵:<br />CvMat mat;<br />cvInitMatHeader(&mat,2,2, CV_32FC1, vals);<br /> <br />CvMat mat = cvMat(2,2, CV_32FC1, vals);<br /> <br />两种方法本质上一样,“函数 cvMat 是个一快速内联函数,替代函数 cvInitMatHeader”( http://原创 2010-11-24 09:54:00 · 3965 阅读 · 0 评论 -
OpenCV的一些宏
<br /><br />1、CV_MAKETYPE(depth,cn)宏<br /> <br />作用:#defineCV_MAKETYPE(depth,cn) 宏读入位深度depth和通道数cn生成矩阵类型type.<br /> <br />Depth是位深度,定义如下:<br />#define CV_8U 0<br />#define CV_8S 1<br />#define CV_16U 2<br />#define CV_16S 3<br />#define CV_32S 4原创 2010-11-10 22:12:00 · 8179 阅读 · 2 评论 -
初始化Mat的几种方法
1. 调用Mat的构造函数或者create函数,如: // make a 7x7 complex matrix filled with 1+3j.Mat M(7,7,CV_32FC2,Scalar(1,3));// and now turn M to a 100x60 15-channel 8-bit matrix.// The old content will be dealloc翻译 2014-08-15 21:23:06 · 32093 阅读 · 0 评论