随笔分类 -  OpenCV

OpenCV学习(4) Mat的基本操作(1)
摘要:图像在OpenCV中都是通过Mat类来存储的,Mat可以用来表示N维矩阵,当然用的最多的还是二维矩阵。 Mat类有两部分组成:第一部分是头信息,这些信息主要用来描述矩阵,比如矩阵维数ndims,rows,cols(这两个成员变量主要用于二维矩阵,用来表示行数和列数),size,sizes, type,step等等;第二部分是data信息,这是一个指针,指向Mat中存储的数... 阅读全文

posted @ 2013-09-13 21:11 迈克老狼2012 阅读(5860) 评论(0) 推荐(0) 编辑

OpenCV学习(3) OpenCV框架
摘要:OpenCV是一个开源的视觉库,其中包括很多计算机视觉的算法实现。在版本2.2以后,OpenCV采用C++特征的API,在1.x版本中,OpenCV函数都是传统的C语言形式。 OpenCV采用模块化的结构,每个模块都是由一些动态和静态库组成,该模块会实现一些特定的计算机视觉算法。要使用某个特定的库,我们必须在程序中先包含该库的头文件,并把该库的lib作为链接库。 例如要... 阅读全文

posted @ 2013-09-13 19:17 迈克老狼2012 阅读(2057) 评论(0) 推荐(0) 编辑

OpenCV学习(2) OpenCV的配置
摘要:下面我们在VS2010中编写一个简单的OpenCV程序,来看看如何在程序中使用OpenCV。 创建一个新的Win32 控制台程序,附加选项为空工程(empty project),并添加一个cpp源文件main.cpp,内容如下: #include #include int main() { cv::Mat img = cv::imread("lenna.jpg"); ... 阅读全文

posted @ 2013-09-13 19:07 迈克老狼2012 阅读(1025) 评论(0) 推荐(0) 编辑

OpenCV学习(1) OpenCV的安装
摘要:1. 下载文件 下载最新的OpenCV windows版本: 链接:http://sourceforge.net/projects/opencvlibrary/files/opencv-win/ 我下载的版本是2.46,下载后得到OpenCV-2.4.6.0.exe,自解压该文件到目录D:\opencv2.31\opencv2.46。自解压之后,会生成一个opencv的子目录,所... 阅读全文

posted @ 2013-09-13 18:46 迈克老狼2012 阅读(896) 评论(1) 推荐(0) 编辑

OpenCV学习(9) 分水岭算法(3)
摘要:本教程我学习一下opencv中分水岭算法的具体实现方式。 原始图像和Mark图像,它们的大小都是32*32,分水岭算法的结果是得到两个连通域的轮廓图。 原始图像:(原始图像必须是3通道图像) Mark图像: 结果图像: 初始的mark图像数据如下,黄色的部分为我们的第一个mark区域,值为255,第二个区域为褐红色的区域,值为128,第三个绿色的区域,值为64。 ... 阅读全文

posted @ 2013-09-12 21:45 迈克老狼2012 阅读(5693) 评论(9) 推荐(1) 编辑

OpenCV学习(8) 分水岭算法(2)
摘要:现在我们看看OpenCV中如何使用分水岭算法。 首先我们打开一副图像: // 打开另一幅图像 cv::Mat image= cv::imread("../tower.jpg"); if (!image.data) { cout(255*imageMask(x,y)... 阅读全文

posted @ 2013-09-06 07:04 迈克老狼2012 阅读(4056) 评论(2) 推荐(0) 编辑

OpenCV学习(7) 分水岭算法(1)
摘要:分水岭算法主要用于图像分段,通常是把一副彩色图像灰度化,然后再求梯度图,最后在梯度图的基础上进行分水岭算法,求得分段图像的边缘线。 下面左边的灰度图,可以描述为右边的地形图,地形的高度是由灰度图的灰度值决定,灰度为0对应地形图的地面,灰度值最大的像素对应地形图的最高点。 我们可以自己编程实现灰度图的地形图显示,工程FirstOpenCV6就实现了简单的这个功... 阅读全文

posted @ 2013-09-05 19:24 迈克老狼2012 阅读(26370) 评论(4) 推荐(9) 编辑

Meanshift,聚类算法(转)
摘要:原帖地址:http://www.cnblogs.com/liqizhou/archive/2012/05/12/2497220.html 记得刚读研究生的时候,学习的第一个算法就是meanshift算法,所以一直记忆犹新,今天和大家分享一下Meanshift算法,如有错误,请在线交流。 Mean Shift算法,一般是指一个迭代的步骤,即先算出当前点的偏移均值,移动该点到其偏移均值,然后... 阅读全文

posted @ 2013-08-20 11:45 迈克老狼2012 阅读(7188) 评论(0) 推荐(0) 编辑

OpenCV中图像融合
摘要:准备2副背景图像,注意图像黑色的部分,是作为mask用的,我们会用灰度图的方式打开它们,这时黑色的部分值为0,则图像融合时候,可以把第二幅图像在黑色的部分显示出来。 代码非常简单,注意就是图像copyTo函数的使用,把背景图像copy到前景图像时候,掩码部分不会拷贝。 CImageEffect::CImageEffect(){ backImage = cv::... 阅读全文

posted @ 2013-06-18 20:11 迈克老狼2012 阅读(4347) 评论(0) 推荐(0) 编辑

OpenCV中矩阵的归一化
摘要:原帖地址:http://windrocblog.sinaapp.com/?p=486 图像处理中,图片像素点单通道值一般是[0-255]的unsigned char类型,将其转化到[0,1]之间,更方便计算,这就需要用到矩阵的归一化运算。 今天,写程序中需要对某矩阵归一化,用OpenCV的cv::normalize函数,遇到很严重的问题,最后发现,normalize的原矩阵必须是... 阅读全文

posted @ 2012-10-24 07:05 迈克老狼2012 阅读(5757) 评论(1) 推荐(0) 编辑

cvMatND 多维数组 设置和读取像素值
摘要:原帖地址:http://shijuanfeng.blogbus.com/logs/206701809.html opencv中的多维数组——MatND的用法,因为直方图就是多维数组,所以了解一下它的基本用法,仅做收藏。 void MatNDReadAndSet(){ int M = 192; int N = 168; int K = 7; int size... 阅读全文

posted @ 2012-10-19 20:52 迈克老狼2012 阅读(1630) 评论(0) 推荐(0) 编辑

Histogram equalization
摘要:This method usually increases the global contrast of many images, especially when the usable data of the image is represented by close contrast values. Through this adjustment, the intensities c... 阅读全文

posted @ 2012-04-10 06:42 迈克老狼2012 阅读(2071) 评论(0) 推荐(0) 编辑

一篇基于opencv的人脸识别文章
摘要:Introduction to Face Detection and Face Recognition:Last updated on 4th Feb, 2012 by Shervin Emami. Posted originally on 2nd June, 2010."Face Recognition" is a very active area in the Computer Vision and Biometrics fields, as it has been studied vigorously for 25 years and is finally produ 阅读全文

posted @ 2012-03-08 21:47 迈克老狼2012 阅读(6351) 评论(1) 推荐(0) 编辑

一个简单的人脸检测程序
摘要:基于OpenCV harr级联分类器的人脸及眼睛、鼻子、嘴巴检测程序。代码很简单:#include <opencv2/core/core.hpp>#include <opencv2/highgui//highgui.hpp>#include <opencv2/objdetect/objdetect.hpp>#include <string>#include <vector>using namespace std;int main() { cv::CascadeClassifier mFaceDetector; cv::CascadeC 阅读全文

posted @ 2012-03-07 21:30 迈克老狼2012 阅读(1898) 评论(0) 推荐(1) 编辑

OpenCV中读取视频/camera代码
摘要:发现OpenCV中读取视频或者usb camera的方法如此简单,下面是opencv2.31中实现的读取摄像头的代码: int main() { //打开视频文件 //cv::VideoCapture capture("bike.avi"); //0 open default camera cv::VideoCapture capture(0); //检查... 阅读全文

posted @ 2012-03-07 20:26 迈克老狼2012 阅读(1724) 评论(0) 推荐(0) 编辑

导航