<学习opencv> opencv 概述及初探】的更多相关文章

kmeans算法的原理参考:http://www.cnblogs.com/mikewolf2002/p/3368118.html 下面学习一下opencv中kmeans函数的使用.      首先我们通过OpenCV中的随机数产生器RNG,生成一些均匀分布的随机点,这些点的位置对应一副图像中的像素位置,然后使用kmeans算法对这些随机点进行分类,并计算出分类簇的中心点.      随机产生的簇的数量是2到5之间的值,采样点的数量范围是1-1000,一维矩阵centers存放kmeans算法结束…
了解一些OpenCV代码整体的模块结构后,再重点学习自己感兴趣的部分,会有一种一览众山小的感觉~ Come on! C:\OpenCV\opencv\build\include文件夹下包含两个文件夹: opencv文件夹:包含着opencv 1.0最核心的旧版本头文件. opencv2文件夹:包含着具有时代意义的新版OpenCV2系列的头文件. 可以看到,OpenCV支持的所有模块,主要模块简介如下: core 模块:核心功能 imgproc 模块: 图像处理 highgui 模块:高层GUI和…
关于OpenCV安装 1.下载和安装OpenCV SDK 在官网:http://opencv.org/上找到OpenCV windows版下载 . 后得到一个 opencv-2.X.X.exe的文件,直接双击解压......如下: 2.配置环境变量: 在path 变量下,新增以下两个值: 3.工程包含(include)目录的配置 新建一个工程之后,在菜单栏里面点<视图>--<属性管理器>,那么就会在visual studio中多出一个属性管理器工作区来. 在新出现的"属性…
安装后的OpenCV程序下的build文件夹中,只找到了vc10.vc11和vc12三种编译版本的dll和lib文件,需要VS2010及以上的IDE版本,而没有我们常用的VS2008版本. 于是,需要的小伙伴们可以自己动手,丰衣足食! 1). 安装CMake       cmake-2.8.8-win32-x86.exe (http://www.cmake.org/cmake/resources/software.html) 百度云盘:http://pan.baidu.com/s/1dEYbx7…
Java虚拟机JVM学习01 流程概述 Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序. 当启动一个Java程序时,一个虚拟机实例诞生:当程序关闭退出,这个虚拟机实例也就随之消亡. 如果在同一台计算机上同时运行多个Java程序,将得到多个Java虚拟机实例,每个Java程序都运行于它自己的Java虚拟机实例中. 在如下几种情况下,Java虚拟机将结束生命周期: 1.执行了System.exit()方法 2.程序正常执行结束 3.程序在执行过程中遇到了…
此文主要讲述用 TestNG 基础的 annotation (注解)知识,及其执行的顺序,并通过一个 TestNG 简单的实例演示 annotation 的执行顺序. 希望能对初学 TestNG 测试框架的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激! 言归正传,以下为 TestNG 常用的 annotation 及其释义,敬请参阅. @BeforeSuite:被此注解的方法将在所有测试运行之前运行该方法. @AfterSuite: 被此注解的方法将在所有测试运行之后运行该方法. @Bef…
VC++学习之GDI概述 图形设备接口(GDI)是一个可执行程序,它接受Windows应用程序的绘图请求(表现为GDI函数调用),并将它们传给相应的设备驱动程序,完成特定于硬件的输出,象打印机输出和屏幕输出.GDI负责Windows的所有图形输出,包括屏幕上输出像素.在打印机上输出硬拷贝以及绘制Windows用户界面.也就是Windows的图形编程. 一.GDI体系结构 1.  GDI32.DLL导出的函数 GDI提供几百个Windows程序中可以调用的函数.这些函数大多数是从Win32的子系统…
WCF从零学习之WCF概述(一) 一.WCF概述 我先了解了分布式应用程序开发,所谓分布式应用程序是指应用程序分布在不同计算机上,通过网络来共同完成一项任务.通常为服务器/客户端模式. 在WCF发布之前,我们开发使用的应用程序使用多种现有的.NET Framework技术,比如: (1)ASP.NET Web 服务(ASMX).Web service 这种技用于与基于J2EE的现有预定应用程序,以及与Internet上的合作伙伴应用程序进行通信.因为目前大多数平台都支持基本的Web服务,所以在W…
vue学习之vue基本功能初探: 采用简洁的模板语法将声明式的将数据渲染进 DOM: <div id="app"> {{ message }} </div> var app = new Vue({ el: '#app', data: { message: 'Hello Vue!' } }); v-bind方式绑定dom元素属性: <div id="app-2"> <span v-bind:title="messag…
一直很懒去配opencv,这几周忍不了终于抽空来配了一下环境... 用的是旧版opencv2.4系列,最新到3.0了,之后再看看教程不知道有什么特别大的区别. (FF14国服没有4.0 // 8.19上海 FanFes啊x) 一.下载opencv 地址:https://sourceforge.net/projects/opencvlibrary/?source=typ_redirect 之前一直在官网下载source的包,一直没找到所谓的lib和bin,原来要下载win pack的exe...下…
目录 Opencv3 当前模块 OpenCV 贡献库(opencv_contrib) OpenCV 头文件 旧式C风格头文件 新式C++风格头文件 例程 DEMO1 - 显示图片 DEMO2 - 视频 用于从磁盘中播放视频 DEMO3 - 将轨迹栏滑块添加到基本查看器窗口,以便在视频文件中移动 DEMO4 - 在图像显示在屏幕上之前加载并平滑图像 DEMO5 - 使用pyrDown()创建一个新的图像,该图像是输入图像宽度和高度的一半 DEMO6 - Canny边缘检测器将其输出写入单通道(灰度…
在本篇文章中,我们将一起学习opencv中霍夫变换相关的知识点,以及了解opencv中实现霍夫变换的HoughLines,HoughLinesP函数的使用方法,实现霍夫圆变换的HoughCircles函数的使用方法. 先尝鲜一下其中一个示例程序的运行截图: 一.引言 在图像处理和计算机视觉领域中,如何从当前的图像中提取所需要的特征信息是图像识别的关键所在.在许多应用场合中需要快速准确的检测出直线或者圆.其中一种非常有效的解决问题的方法是霍夫(Hough)变换,其为图像处理中从图像识别几何形状的基…
openCV是因特尔的一个开源的视觉库,里面几乎包含了所有的图像处理的经典算法,并且采用C和少量的C++编写,运行效率很高,对于做图像处理这方面工作的,认识opencv是必须的工作.不过opencv有个很大的不足,这在于它几乎没有提供gui这方面接口,很难满足目前应用程序开发的需要,而万恶的MFC框架丑陋的界面也成为了我的噩梦,MFC与opencv和界面优化几乎让我在图像处理这一块儿无法动弹. C#是.net平台上的明星语言,可以很容易做出漂亮的界面.EmguCV是将opencv封装的一个.ne…
上一篇博文中讲到如何用OpenCV实现物体分类,但是接下来这篇博文将会告诉你图片中物体的位置具体在哪里. 我们将会知道如何使用OpenCV‘s的dnn模块去加载一个预训练的物体检测网络,它能使得我们将输入图像通过网络并且获得每个物体在图像中的输出位置. 最后我们将使用MobileNet Single Shot Detector在示例的输入图像中查看结果.下面给出具体的教程: 一 结合MobileNets and Single Shot Detectors实现更快更有效的基于物体检测的深度学习 我…
本章我们学习LBP图像的原理和使用,因为接下来教程我们要使用LBP图像的直方图来进行脸部识别. 参考资料: http://docs.opencv.org/modules/contrib/doc/facerec/facerec_tutorial.html http://www.cnblogs.com/mikewolf2002/p/3438166.html       LBP的基本思想是以图像中某个像素为中心,对相邻像素进行阈值比较.如果中心像素的亮度大于等于它的相邻像素,把相邻像素标记为1,否则标…
在这篇文章里,我们一起学习下 图像金字塔 的一些基本概念,如何使用OpenCV函数pyrUp和pyrDown 对图像进行向上和向下采样,以及了解专门用于缩放图像尺寸的resize函数的用法.此博文一共有四个配套的简短的示例程序,其详细注释过的代码都在文中贴出,且文章最后提供了综合示例程序的下载. 一.引言 我们经常会将某种尺寸的图像转换为其他尺寸的图像,如果放大或者缩小图片的尺寸,笼统的来说,可以使用OpenCV为我们提供的以下俩种方式: (1)resize函数,这是最直接的方式 (2)pyrU…
学习android的目的是想在手机上实现计算机视觉的算法.一般算法的研究都是在Matlab上进行,但是手机平台没有那么多的计算资源,用matlab显然是不太现实的.而OpenCV是基于C++语言编写的,可用于开发实时的图像处理.计算机视觉以及模式识别程序. 一:需要的工具 在前面的章节中,我们已经搭建好android,现在我们需要android支持OpenCV,需要哪些工具呢?首先android是基于java开发的,而Opencv是基于C++,所以这两者之间需要工具来相互支持.这一工具是andr…
开发配置 OpenCV的例程中已经带有了人脸检测的例程,位置在:OpenCV\samples\facedetect.cpp文件,OpenCV的安装与这个例子的测试可以参考我之前的博文Linux 下编译安装OpenCV. 网上能够找到关于OpenCV人脸检测的例子也比较多,大多也都是基于这个例程来更改,只是多数使用的是OpenCV 1.0的版本,而OpenCV2.0以后由于模块结构的更改,很多人并没有将例程运行起来.如果是新版的OpenCV跑旧的例程,编译运行出错的话,需要确保: #include…
目录 Opencv数据类型: 基础类型概述 固定向量类class cv::Vec<> 固定矩阵类cv::Matx<> 点类 Point class cv::Scalar 深入了解基础类型 cv::Point类 cv::Scalar 类 size类 cv::Rect类 cv::RotatedRect class类 cv::Matx 固定矩阵类: cv::Vec 固定向量类 复数类cv::Complexf 辅助对象 Helper Objects cv::TermCriteria cla…
前沿 准备了好几天,终于开始了,不管怎样,接下来的这个月一定把这本书很好的啃下来.当然OpenCV可以在很多的IDE下安装与配置,我这里就只在VS2010和VC6.0下安装配置了,当然这篇博文主要讲在VS2010下的安装配置.所以首先要正确的安装好VS2010和VC6.0然后才能谈OpenVC的安装于配置. 下载文件 下载最新的OpenCV windows版本: 链接:http://sourceforge.net/projects/opencvlibrary/files/opencv-win/…
阅读对象:无要求. 1.代码 ''' OpenCV中的轮廓 轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度.为了更加准确,要使用二值化图像.在寻找轮廓之前,要进行阈值化处理或者 Canny 边界检测. cv2.findContours()在一个二值图像中查找轮廓 有三个参数: 第一个:输入图像; 第二个:轮廓检索模式; 第三个:轮廓近似方法 cv2.CHAIN_APPROX_NONE:所有的边界点都会被存储.但是我们真的需要这么多点吗?例如,当我们找的边界是一条直…
阅读对象:对概率论中的期望有一点了解. 1.图像几何矩 1.1简述 图像的几何矩包括空间矩.中心矩和中心归一化矩.几何矩具有平移.旋转和尺度不变性,一般是用来做大粒度的区分,用来过滤显然不相关的图像. 1.2用数学语言阐述图像的几何矩 针对于一幅图像,我们把像素的坐标看成是一个二维随机变量(X,Y),那么一幅灰度图像可以用二维灰度密度函数来表示,每个像素点的值可以看成是该处的密度,对某点求期望就是该图像在该点处的矩(原点矩),一阶矩和零阶矩可以计算某个形状的重心,二阶矩可以计算形状的方向,因此可…
阅读对象:可以配置opencv+Python环境的任何人,毕竟写这篇文章的人就是小白. 1.环境说明 1.1opencv版本: 1.2Python版本: 1.3系统:win7 注: (1)opencv安装教程:http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html#install-opencv-python-i…
PCA算法的基本原理可以参考:http://www.cnblogs.com/mikewolf2002/p/3429711.html     对一副宽p.高q的二维灰度图,要完整表示该图像,需要m = p*q维的向量空间,比如100*100的灰度图像,它的向量空间为100*100=10000.下图是一个3*3的灰度图和表示它的向量表示: 该向量为行向量,共9维,用变量表示就是[v0, v1, v2, v3, v4, v5, v6, v7, v8],其中v0...v8,的范围都是0-255.    …
OpenCV全称是:Open Source Computer Vision Library(开源计算机视觉库). 于1999年由Intel建立,如今由Willow Garage提供支持. 跨平台,可以运行在Linux.Windows.Android和Mac OS操作系统上. 用C++语言编写,主要接口也是C++语言,但是依然保留了大量的C语言接口. 实现了图像处理和计算机视觉方面的很多通用算法. 应用领域众多: 人机互动 物体识别 图像分割 人脸识别 动作识别 运动跟踪 机器人 运动分析 机器视…
      OpenCV是一个开源的视觉库,其中包括很多计算机视觉的算法实现.在版本2.2以后,OpenCV采用C++特征的API,在1.x版本中,OpenCV函数都是传统的C语言形式.       OpenCV采用模块化的结构,每个模块都是由一些动态和静态库组成,该模块会实现一些特定的计算机视觉算法.要使用某个特定的库,我们必须在程序中先包含该库的头文件,并把该库的lib作为链接库. 例如要使用core和highgui库,则必须在程序源文件中包含: #include <opencv2/core…
      下面我们在VS2010中编写一个简单的OpenCV程序,来看看如何在程序中使用OpenCV. 创建一个新的Win32 控制台程序,附加选项为空工程(empty project),并添加一个cpp源文件main.cpp,内容如下: #include <opencv2/core/core.hpp> #include <opencv2/highgui//highgui.hpp> int main() { cv::Mat img = cv::imread("lenna…
OpenCV java API的文档说明在OpenCV-2.4.10-android-sdk/sdk/java/javadoc/index.html的文件夹下. 想用java API的方式进行OpenCV4android 应用开发还是挺简单,首先就这些API先熟悉一下,然后对自己要开发的应用设计好流程,需要用到什么的数据结构进行存储,用到什么算法.然后对算法进行了解,输入参数是什么,输出参数是什么.有哪些fields和methods. 1.Packages:org.opencv.core Cor…
搭建好OpenCV4Android环境后,就要着手开发自己的应用了.对于一个没有OpenCV基础的人来开发OpenCV应用确实有点难度,不过我们可以从samples里学起,结合javadoc和万能的网络开发一个简单的应用应该不难.为了简单,我们采用的是纯粹的java API不涉及JNI,等对这一部分熟悉之后再来采用JNI实现. 首先对OpenCV的android应用来个感性的认识,把samples中的image-manipulations安装到手机上(手机上先安装好OpenCV manager…
前言: PCA是大家经常用来减少数据集的维数,同时保留数据集中对方差贡献最大的特征来达到简化数据集的目的.本文通过使用PCA来提取人脸中的特征脸这个例子,来熟悉下在oepncv中怎样使用PCA这个类. 开发环境:ubuntu12.04+Qt4.8.2+QtCreator2.5.1+opencv2.4.2 PCA数学理论: 关于PCA的理论,资料很多,公式也一大把,本人功底有限,理论方面这里就不列出了.下面主要从应用的角度大概来讲讲具体怎么实现数据集的降维. 把原始数据中每个样本用一个向量表示,然…