opencv学习之路
文章平均质量分 64
轩落_翼
字节跳动大数据引擎
展开
-
opencv3.0中SiftFeatureDetector不在cv命名空间下的解决办法
不得不说我妥协了,想在opencv3.0原创 2014-11-25 12:46:26 · 6513 阅读 · 1 评论 -
opencv2在视频帧序列中运用鼠标事件
刚刚写好的在图像中运用鼠标事件,现在要写的是在视频序列中运用鼠标事件#include#include#include#include#include#include#include#include#include#include#includeusing namespace cv;using namespace std;Point coord;//储存初始坐标R原创 2014-12-17 00:46:30 · 1240 阅读 · 0 评论 -
opencv2对图像运用鼠标事件
有关opencv2的文章比较少,介于这个原因为了让后来人可以学到一些opencv2的有关知识,本人决定开始写opencv2的专栏,希望可以给大家帮助我没有按照顺序编写,读者需要的部分可以看我的opencv专栏由于鼠标事件很有用,第一篇就写写鼠标事件的用法:#include#include#include#include#include#include#include#in原创 2014-12-17 00:33:40 · 948 阅读 · 0 评论 -
opencv2对直方图的求解以及描述
这里用类的方式写出:#include#include#include#include#include#includeusing namespace cv;using namespace std;class HistgramShow{private: Mat ShowHisImage;public: //这个函数仅仅是封装了一下显示函数 void sho原创 2014-12-17 17:34:05 · 248814 阅读 · 1 评论 -
opencv2对查找表的运用
在opencv中查找表的作用就是将相应的灰度值通过一个写好的查找表进行一个灰度值的替换,比如说,原图像的一个像素值为0,现在定义一个查找表,该查找表的作用是将每个灰度值变为1,那么运用LUT对应关系后,原图像中的0像素值被修改为1在《opencv2计算机视觉编程手册》一书中在这一节的扩展阅读中加了一个直方图的图像,对于初学者来说,这个直方图可以先不管,作者引入直方图的意思只是想更直观的显示修改原创 2014-12-18 13:29:24 · 679 阅读 · 1 评论 -
opencv2鼠标选择感兴趣区域后对两幅图像进行均值漂移算法
之前的鼠标事件的响应以及均值漂移算法算法如果已经懂了,那么现在的程序就是合成了一下,就直接上代码了#include#include#include#include#include#include#include#include#include#include#includeusing namespace cv;using namespace std;class P原创 2014-12-23 16:12:19 · 1067 阅读 · 1 评论 -
opencv2均值漂移算法
为了方便调用,我将opencv2许多常用的函数以及功能都封装在一个类里面,所以这次的均值漂移算法也将从封装类中截取出来,供大家学习类的代码:class Package{private:public: Rect MeanShitfMath(const Mat &OrgInImage, const Mat &PreInImage, Rect &ROIrect);};Rect P原创 2014-12-23 15:50:54 · 1310 阅读 · 3 评论 -
opencv2利用直方图对图像的反投影算法
该算法是根据感兴趣区域的直方图对整个图像进行反投影,就是找到原图像中与感兴趣区域的直方图相似的地方opencv中提供了这个算法的函数,可以直接调用这个算法分不使用颜色信息和使用颜色信息,这里先介绍不使用颜色信息的方法,下一节将介绍使用颜色信息的方法封装类:class Package{private:public: Mat CalcBack(const Mat &InIma原创 2014-12-23 16:39:32 · 1174 阅读 · 0 评论 -
opencv2用均值漂移算法跟踪特定颜色的物体
#include#include#include#include#include#include#include#include#include#include#includeusing namespace cv;using namespace std;class Package{private:public:Rect原创 2014-12-23 16:17:39 · 1730 阅读 · 2 评论 -
opencv2反投影算法中使用颜色信息
各位博友,转载请注明出处,谢谢合作!!!这次是接上一篇提到的颜色信息的运用:测试代码:#include#include#include#include#include#include#include#include#include#include#includeusing namespace cv;using namespace std;class Pac原创 2014-12-23 17:01:55 · 633 阅读 · 0 评论 -
opencv2鼠标选定感兴趣区域用反投影算法检测相似部分
请广大博友转载时,注明文章出处,谢谢!!!这个是对上一篇,在反投影算法中使用颜色信息的一个拓展,理解了上一篇和鼠标事件后,这个就是组合#include#include#include#include#include#include#include#include#include#include#includeusing namespace cv;using nam原创 2014-12-23 17:10:15 · 1100 阅读 · 0 评论 -
opencv2图像的腐蚀和膨胀运算
图像的腐蚀和膨胀是图像的形态学运算的基础算法,下面来分别看一下两种运算,opencv已经将这个算法分装起来了在这里我将这两个函数分装一下,使用起来更加方便下面程序中实现了腐蚀和膨胀运算:#include#include#include#include#include#include#include#include#include#include#include#i原创 2015-01-12 21:42:33 · 777 阅读 · 0 评论 -
opencv2用反投影实现标定颜色的识别
还是需要说明一下,希望各位博友转载的时候和注明文章出处,谢谢!!!颜色识别一般的方法是用已知的三基色与原图进行比对,对待检测的图像的每一个像素进行遍历,这种方法因为需要知道已知色,而且还要确定容忍度,对于颜色差别较小的物体来说是很难检测的,只要就是颜色的通道值非常难确定,我之前也做过很多这种方法的优化工作,就算用一般的算法优化的再彻底,效果也不敬人意,最后用直方图的反投影实现了颜色识别这是原创 2014-12-31 19:24:43 · 1307 阅读 · 1 评论 -
opencv2改变图像的大小
opencv不管是1.0还是2.0以后的,都提供了改变图像大小的函数,在1.0时是cvResize,2.0以后就是resize用法基本是一样的,这里就说说opencv2中改变图像大小的函数resize的用法先说一下opencv2中的Size类,这是一个改变大小的类,该类的成员height和width,可以通过改变其成员height和width的大小,将Size类作为参数传递到resize中原创 2015-02-25 22:05:06 · 1914 阅读 · 0 评论 -
Opencv定义和输出三维点
#include#includeusing namespace std;using namespace cv;int main(){ Point3f p3f(3, 4, 5); cout << "【三维点】" << endl << p3f << endl; return 0;}原创 2015-08-23 10:14:27 · 2714 阅读 · 1 评论 -
Opencv的Size类-尺寸类
#include#includeusing namespace std;using namespace cv;int main(){ Size size(5, 10); cout << "【尺寸的长】" << size.width << endl; cout << "【尺寸的高】" << size.height << endl; return 0;}原创 2015-08-24 16:57:03 · 6945 阅读 · 0 评论 -
Opencv图像显示
有一段时间没有碰过opencv了,花些时间重新回顾一遍用的是毛星云的opencv3,因为是回顾,原谅我只能把自己写的代码贴上去!但是我会从易到难,按照作者的作风一步一步来首先就是图像的显示#include#includeusing namespace std;using namespace cv;int main(){ Mat img = imread("G原创 2015-08-20 23:30:25 · 494 阅读 · 0 评论 -
Opencv调用摄像头采集图像
首先需要提起学习者的兴趣:#include#include#include#includeusing namespace std;using namespace cv;int main(){ VideoCapture capture(0); Mat frame, grayImage; while (waitKey(30) != 27) { capture >>原创 2015-08-20 23:33:53 · 5225 阅读 · 1 评论 -
Opencv定义输出vector容器的point类型的点
#include#include#include"stdio.h"using namespace std;using namespace cv;int main(){ vector vp2f; vp2f.push_back(Point2f(2, 3)); cout << "【二维点向量】" << endl << vp2f << endl; vector vp3f(20);原创 2015-08-23 10:17:09 · 27393 阅读 · 0 评论 -
Opencv的cvtColor函数-颜色空间转换
#include#includeusing namespace std;using namespace cv;int main(){ Mat srcImage = imread("G:\\group.jpg"); imshow("【原图】", srcImage); Mat dstImage; dstImage.create(srcImage.size(), srcImage原创 2015-08-23 10:20:53 · 1162 阅读 · 0 评论 -
Opencv显示创建Mat对象的七种方式
方式一:#include#includeusing namespace std;using namespace cv;int main(){ //创建一个2*2 类型为8位的uchar类型三通道的 颜色为黄色 Mat img(2, 2, CV_8UC3, Scalar(0, 255, 255)); cout << "矩阵元素" << endl << img << endl;原创 2015-08-23 09:27:31 · 21917 阅读 · 0 评论 -
Opencv的Point类
#include#includeusing namespace std;using namespace cv;int main(){ Point point(2, 3); cout << "【Point类程序】" << endl << point << endl; Point point2 = Point(2, 3); cout << "【Point类程序2】" << en原创 2015-08-24 16:53:04 · 2158 阅读 · 0 评论 -
Opencv用鼠标绘制填充多边形
#include#include#define WINDOW_NAME "鼠标事件窗口"#define EVENT_WINDOW "滚动条窗口"using namespace std;using namespace cv;//滚动条int g_CurNum;const int g_NumMax = 500, g_nMaxAlphaValue = 255, g_switch =原创 2015-08-25 15:36:42 · 1903 阅读 · 0 评论 -
Opencv图像模糊
#include#include#include#includeusing namespace std;using namespace cv;int main(){ Mat srcImage = imread("G:\\group.jpg"); imshow("【原图】", srcImage); Mat dstImage; blur(srcImage, dstImage原创 2015-08-20 23:44:56 · 722 阅读 · 0 评论 -
Opencv滑动条的创建和使用
#include#include#include"stdio.h"#define WINDOW_NAME "【轨迹条测试窗口】"using namespace std;using namespace cv;Mat srcImage1, srcImage2, dstImage;int g_nAlphaValueSlider;const int g_nMaxAlphaValue原创 2015-08-21 22:40:06 · 2913 阅读 · 0 评论 -
Opencv定义和输出二维点
#include#includeusing namespace std;using namespace cv;int main(){ Point2f p2f(2, 6); cout << "【二维点】" << endl << p2f << endl; return 0;}原创 2015-08-23 10:13:25 · 1337 阅读 · 1 评论 -
Opencv定义和输出基于Mat的vector
#include#include#includeusing namespace std;using namespace cv;int main(){ vector v; v.push_back(2); v.push_back(3); v.push_back(4); cout << "【基于Mat的vector】" << endl << Mat(v) << endl;原创 2015-08-23 10:16:08 · 2902 阅读 · 0 评论 -
Opencv用鼠标画圆
#include#include#define WINDOW_NAME "鼠标事件窗口"#define EVENT_WINDOW "滚动条窗口"#define PI 3.1415926using namespace std;using namespace cv;void DrawCircle(Mat &img, Point center, int radius, Scalar原创 2015-08-25 15:28:40 · 1859 阅读 · 0 评论 -
Opencv鼠标操作
#include#include#define WINDOW_NAME "鼠标事件窗口"using namespace std;using namespace cv;Rect g_rectangle;bool g_bDrawingBox = false;RNG g_rng(12345);void DrawRectangle(Mat &img, Rect box){ re原创 2015-08-22 21:12:59 · 712 阅读 · 0 评论 -
Opencv的Rect类-矩形类
#include#includeusing namespace std;using namespace cv;int main(){ Rect rect(0, 0, 50, 50); Point point(20, 20); Rect rect1(2, 2, 10, 10); Rect rect2(20, 20, 100, 100); Size size(5, 5);原创 2015-08-24 16:54:43 · 12809 阅读 · 2 评论 -
Opencv用鼠标绘制线段
#include#include#define WINDOW_NAME "鼠标事件窗口"#define EVENT_WINDOW "滚动条窗口"#define PI 3.1415926using namespace std;using namespace cv;void DrawLine(Mat &img, Point start, Point end, Scalar colo原创 2015-08-25 15:33:31 · 835 阅读 · 0 评论 -
Opencv读取并播放视频
#include#include#include#includeusing namespace std;using namespace cv;int main(){ VideoCapture capture("G:\\bike.avi"); Mat frame; while (waitKey(33) != 27) { capture >> frame; ims原创 2015-08-20 23:47:39 · 3203 阅读 · 0 评论 -
Opencv的Canny边缘检测
#include#include#include#includeusing namespace std;using namespace cv;int main(){ Mat srcImage = imread("G:\\group.jpg"); imshow("【原图】", srcImage); Mat grayImage; cvtColor(srcImage, gra原创 2015-08-20 23:49:42 · 598 阅读 · 1 评论 -
Opencv用鼠标绘制椭圆
#include#include#define WINDOW_NAME "鼠标事件窗口"#define EVENT_WINDOW "滚动条窗口"#define PI 3.1415926using namespace std;using namespace cv;void DrawEllipse(Mat &img, Point center, Size_ size, double原创 2015-08-24 17:04:56 · 921 阅读 · 0 评论 -
Opencv图像腐蚀
简单的几个程序,先带学者进入神奇的opencv世界#include#include#include#includeusing namespace std;using namespace cv;int main(){ Mat srcImage = imread("G:\\group.jpg"); imshow("【原图】", srcImage); //图像腐蚀操作 /原创 2015-08-20 23:42:42 · 533 阅读 · 1 评论 -
Opencv输出图像函数-imwrite
#include#include#includeusing namespace std;using namespace cv;void creatAlphaMat(Mat &mat){ for (int i = 0; i < mat.rows; i++) { for (int j = 0; j < mat.cols; j++) { Vec4b &rgba = ma原创 2015-08-21 22:33:28 · 1303 阅读 · 0 评论 -
Opencv的moveWindow函数
#include#includeusing namespace std;using namespace cv;int main(){ Mat img = imread("G:\\group.jpg"); imshow("WINDOW_NAME", img); //将显示窗口移到显示屏的相应位置 moveWindow("WINDOW_NAME", 0, 0); waitK原创 2015-08-23 09:36:39 · 8971 阅读 · 0 评论 -
Opencv的Scalar类-颜色类
#include#includeusing namespace std;using namespace cv;int main(){ Scalar color(2, 3, 4); cout << "【颜色类】" << endl << color << endl; color.all(0); cout << color << endl; return 0;}原创 2015-08-24 16:55:55 · 4495 阅读 · 0 评论 -
Opencv的LUT函数-查表操作
#include#includeusing namespace std;using namespace cv;int main(){ //建立一个查找表 int table[256]; int div = 50; for (int i = 0; i < 256; i++) { table[i] = i / div * div; } Mat lut(1, 256,原创 2015-08-27 10:54:48 · 6330 阅读 · 0 评论 -
Opencv的merge函数-通道合并
#include#include#includeusing namespace std;using namespace cv;int main(){ Mat blue_channels = imread("【蓝色通道】.jpg"); Mat green_channels = imread("【绿色通道】.jpg"); Mat red_channels = imread("【红原创 2015-08-27 10:57:10 · 3777 阅读 · 0 评论