准备1:OpenCV常用图片转换技巧 在进行计算机视觉模型训练前,我们经常会用到图像增强的技巧来获取更多的样本,但是有些深度学习框架中的方法对图像的变换方式可能并不满足我们的需求,所以掌握OpenCV中一些常用的图像处理技巧对我们还是有很多帮助的. 图像通道分离 我们知道每个图像是由RGB三个颜色通道构成,所以我们可以使用split函数对原图像的三个通道进行分离: B, G, R = cv2.split(img) 进行通道分离的后,我们就可以在每个通道上独立的进行数值变换,变换完成后再来组合来生…
最近一段时间学习并做的都是对图像进行处理,其实自己也是新手,各种尝试,所以我这个门外汉想总结一下自己学习的东西,图像处理的流程.但是动起笔来想总结,一下却不知道自己要写什么,那就把自己做过的相似图片搜索的流程整理一下,想到什么说什么吧. 首先在进行图片灰度化处理之前,我觉得有必要了解一下为什么要进行灰度化处理. 图像灰度化的目的是什么? 将彩色图像转化为灰度图像的过程是图像的灰度化处理.彩色图像中的每个像素的颜色由R,G,B三个分量决定,而每个分量中可取值0-255,这样一个像素点可以有1600…
      首页 视界智尚 算法技术 每日技术 来打我呀 注册     OpenCV学习笔记大集锦 整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的.如果有好的资源,也欢迎介绍和分享. 1:OpenCV学习笔记 作者:CSDN数量:55篇博文网址:http://blog.csdn.net/column/details/opencv-manual.html 2:部分OpenCV的函数解读和原理解读 作者:梦想腾飞数量:20篇博文网址:http:/…
考试终于完了,现在终于有时间可以继续学习这个了.写这篇博客主要是因为以前一直搞不清楚图像数据到底是怎么存储的,以及这个step到底是什么,后来查了一下才知道原来step就是数据行的长度.. #include "stdafx.h" #include <highgui.h> #include <math.h> #include <cv.h> using namespace std; int main() { IplImage* sourceImage;…
图像阈值化的基本思想是,给定一个数组和一个阈值,然后根据数组中每个元素是低于还是高于阈值而进行一些处理. cvThreshold()函数如下: double cvThreshold( CvArr* src, CvArr* dst, double threshold, double max_value, int threshold_type ) cvShold函数只能处理8位或者浮点灰度图像,目标图像必须与源图像一致,或者为8为图像 . 实现阈值化的代码如下: #include "stdafx.h…
今天我们来看一下如何访问图像的像素,以及如何改变图像的亮度与对比度. 在之前我们先来看一下图像矩阵数据的排列方式.我们以一个简单的矩阵来说明: 对单通道图像排列如下: 对于双通道图像排列如下: 那么对于三通道的RGB图像则为: 知道了排列方式之后我们来讨论一下访问图像像素常用的三种方式: 1.使用指针访问: 2.使用迭代器访问: 3.使用动态地址访问: 为了比较一下三种方式的效率,我们介绍两个函数来统计一下每种方式所需的时间. int64 getTickCount()函数:返回CPU自某个时间(…
学习图像上的算术运算,加法,减法,位运算等 1.图像加法 使用cv2.add()将两幅图像进行加法运算,也可以用numpy运算,直接img+img1.两幅图像的大小和类型必须一致,或者第二个图像可以是一个简单的标量值. 两种操作的本质区别在于OpenCV的加法是一种饱和操作,加到顶后就不在上升了:而Numpy是模操作,具体如下: import numpy as npimport cv2 x = np.uint8([250])y = np.uint8([10])print(cv2.add(x,y)…
OPenCV /*=========================================================================*/ // 图像和大型阵列类型 /*=========================================================================*/ cv::Mat class:N维密集阵列 该cv::Mat class 可用于任何数组尺寸数量.数据存储在数组中,可以被认为是 "光栅扫描顺序&qu…
代码: #include <stdio.h> #include <opencv/highgui.h> #include <opencv/cv.h> #include <opencv_libs.h> /* *<学习OpenCV>第五章第二题 * 完成时间:21:43 10/13 星期日 2013 * 作者:qdsclove@163.com */ /* Image Size */ #define IMG_SIZE 100 /* * Window Ti…
这道题是载入一幅带有有趣纹理的图像并用不同的模板(窗口,核)大小做高斯模糊(高斯平滑),然后比较用5*5大小的窗口平滑图像两次和用11*11大小的窗口平滑图像一次是否接近相同. 先说下我的做法,a部分我将每个不同的窗口大小模糊化后的图像生成后,还计算了每个模糊化后的图像与原始图像间的MSE值与PSNR值.(参见:http://zh.wikipedia.org/wiki/%E5%B3%B0%E5%80%BC%E4%BF%A1%E5%99%AA%E6%AF%94) b部分我计算了两次5*5窗口大小的…
学习opencv中文版教程——第二章 所有案例,跑起来~~~然而并没有都跑起来...我只把我能跑的都尽量跑了,毕竟看书还是很生硬,能运行能出结果,才比较好. 越着急,心越慌,越是着急,越要慢,越是陌生,越不能盲进.否则更容易走错路. 看了一些东西发现都挺坑的,然后看了看书,发现书上写的也...所以就把看书笔记,和跑动例程都来做一个整理. 关于如何配置,是重中之重 所以配置写在了这里:http://www.cnblogs.com/letben/p/5278595.html 然后是看书又看回到了这本…
http://www.cnblogs.com/tiandsp/archive/2013/04/20/3031862.html [学习opencv]高斯.中值.均值.双边滤波 四种经典滤波算法,在opencv文档中都能找到的,熟悉一下调用规范. #include "cv.h" #include "highgui.h" #include <iostream> using namespace std; using namespace cv; int main(…
学习OpenCV双目测距原理及常见问题解答 转自博客:https://blog.csdn.net/angle_cal/article/details/50800775 一. 整体思路和问题转化.  图1. 双摄像头模型俯视图 图1解释了双摄像头测距的原理,书中Z的公式如下:  在OpenCV中,f的量纲是像素点,T的量纲由定标棋盘格的实际尺寸和用户输入值确定,一般总是设成毫米,当然为了精度提高也可以设置为0.1毫米量级,d=xl-xr的量纲也是像素点.因此分子分母约去,z的量纲与T相同  图2,…
http://www.cnblogs.com/CoverCat/p/5043833.html Visual Studio Community 2015 工程和代码:http://pan.baidu.com/s/1o7lxYSM 内容 在这篇文章中将提到以下内容: 全局阈值 自适应阈值 Otsu's二值化 在图像处理中,会希望忽略掉一些灰度细节,只保留主体的轮廓,对灰度图像进行阈值化处理能达到这个目的. “其基本的思想是,给定一个数组和一个阈值,然后根据数组中的每个元素的值是低于还是高于阈值而进行…
2015-11-11 ----------------------------------------------------------------------------------- 其实,写博客是很消耗时间的,尤其是新手玩家.但凡事不妨一试,再说它也可以反过来倒逼 我坚持学习这个领域的知识,也不失为自我暗示的好方法. 鉴于过往的学习体验,往往是零零碎碎地接收一堆杂乱知识,不能很好地消化,仿若段誉短时 间吸收以大众人的内力,反倒自食其害.苦了现在还需腾出大量时间整理.也因有了这么一遭 领悟…
人脑将视觉信号划分入很多个通道,将各种不同的信息输入你的大脑.你的大脑有一个关注系统,会根据任务识别出图像的重要部分,并做重点分析,而其他部分则分析得较少 .在人类视觉流中存在大量的反馈,但是目前我们对之了解甚少.肌肉控制的传感器以及其他所有传感器的输入信息之间存在广泛的关联,这使得大脑可以依赖从出生以来所学到的信息.大脑中的反馈在信息处理的各个阶段都存在,在传感器硬件(眼睛)中也存在.在眼睛中通过反馈来调节通过瞳孔的进光量,以及调节视网膜表面上的接收单元. 摘自:<学习OpenCV(中文版)>…
这道题是利用OpenCV例子程序里自带的人脸检测程序,做点图像的复制操作以及alpha融合. 说明:人脸检测的程序我参照了网上现有的例子程序,没有用我用的OpenCV版本(2.4.5)的facedetect.c,人脸检测部分是一个月前写的程序,这次做了点改动,以前的部分注释了起来. 代码: #include <opencv/cv.h> #include <opencv/highgui.h> #include <opencv_libs.h> #include <st…
#include <highgui.h> #include <cv.h> #include "opencv_libs.h" /* *<学习OpenCV>第四章第三题b * 完成时间:1:36 3/31 星期日 2013 */ /* 矩形框 */ CvRect rect; bool draw = false; // 标记是否在画 IplImage* img; IplImage * temp; IplImage * original; bool draw…
#include <highgui.h> #include <cv.h> #pragma comment (lib,"opencv_calib3d231d.lib") #pragma comment (lib,"opencv_contrib231d.lib") #pragma comment (lib,"opencv_core231d.lib") #pragma comment (lib,"opencv_feat…
#include <highgui.h> #include <cv.h> #pragma comment (lib,"opencv_calib3d231d.lib") #pragma comment (lib,"opencv_contrib231d.lib") #pragma comment (lib,"opencv_core231d.lib") #pragma comment (lib,"opencv_feat…
#include <highgui.h> #include <cv.h> #pragma comment (lib,"opencv_calib3d231d.lib") #pragma comment (lib,"opencv_contrib231d.lib") #pragma comment (lib,"opencv_core231d.lib") #pragma comment (lib,"opencv_feat…
题外话:一直是打算把这本书的全部课后编程题写完的,中间断了几个月,一直忙于其他事.现在开始补上. 这道题我不清楚我理解的题意是不是正确的,这道题可以练习用OpenCV实现透视变换(可以用于矫正在3维环境下的图像失真),b&c部分则是实现图像放大缩小插值,旋转图像.所有的功能都和键盘事件处理联系起来,纯OpenCV实现,和OS无关.不过,在处理SHIFT键时,我取得是其在键盘上对应字符的ASCII码,好像OpenCV对键盘事件的支持不如对鼠标事件的支持.所以SHIFT键+小键盘上的数字键是不行的.…
前言: 人脸检測与识别一直是计算机视觉领域一大热门研究方向,并且也从安全监控等工业级的应用扩展到了手机移动端的app,总之随着人脸识别技术获得突破,其应用前景和市场价值都是不可估量的,眼下在学习openCV,自然不能放过这个领域,于是略微了解了下openCV下人脸检測的一些原理,为之后的人脸识别等研究做个小小的铺垫. 原理: 人脸检測属于目标检測(object detection) 的一部分,主要涉及两个方面 先对要检測的目标对象进行概率统计,从而知道待检測对象的一些特征,建立起目标检測模型.…
前言: 人脸检測与识别一直是计算机视觉领域一大热门研究方向,并且也从安全监控等工业级的应用扩展到了手机移动端的app.总之随着人脸识别技术获得突破,其应用前景和市场价值都是不可估量的,眼下在学习openCV,自然不能放过这个领域.于是略微了解了下openCV下人脸检測的一些原理.为之后的人脸识别等研究做个小小的铺垫. 原理: 人脸检測属于目标检測(object detection) 的一部分,主要涉及两个方面 先对要检測的目标对象进行概率统计,从而知道待检測对象的一些特征,建立起目标检測模型.…
使用 OpenCV 和 Python 对实时视频流进行深度学习目标检测是非常简单的,我们只需要组合一些合适的代码,接入实时视频,随后加入原有的目标检测功能. 在本文中我们将学习如何扩展原有的目标检测项目,使用深度学习和 OpenCV 将应用范围扩展到实时视频流和视频文件中.这个任务会通过 VideoStream 类来完成. 深度学习目标检测教程:http://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-…
学习OpenCV——SVM 学习SVM,首先通过http://zh.wikipedia.org/wiki/SVM, 再通过博客http://blog.csdn.net/yang_xian521/article/details/6969904 OpenCV开发SVM算法是基于LibSVM软件包开发的,LibSVM是台湾大学林智仁(Lin Chih-Jen)等开发设计的一个简单.易于使用和快速有效的SVM模式识别与回归的软件包.用opencv使用SVM算法的大概流程是 1)设置训练样本集 需要两组数…
前言 接着上篇<IOS7下的人脸检測>,我们顺藤摸瓜的学习怎样在IOS7下用openCV的进行人脸识别,实际上非常easy,因为人脸检測部分已经完毕,剩下的无非调用openCV的方法对採集到的人脸样本进行训练,终于得到一个能够预測人脸的模型.可是当中的原理可谓是博大精深,因为快临最近末考试了,没时间去琢磨当中详细的细节,这次就先写个大概的demo,下次更新文章就得到6月20号之后了. 原理: 从OpenCV2.4之后,openCV增加了新的类FaceRecognizer,我们能够使用它便捷地进…
在<学习OpenCV>这本书中,很多示例代码都用到了命令行参数.作为新手,之前总是很困扰,不知道怎么用.偶然的机会终于略知一二了. 在Visual Studio中,我们可以自行设置命令行参数. 如在这个示例程序中,我们想把图像存入argv[1]. 方法如下: 依次点击,项目.属性.配置属性.调试.命令参数.出现下面的界面: 然后进行编辑,即输入图像路径.如:E:\Lena.jpg.(如果想加入多个命令行参数,则用空格隔开.如:E:\Lena.jpg E:\test.avi) 到这一步,参数设置…
    老板让让做一个东东.输入端要用到opencv顺便就来学习一下.买了本书<学习opencv>翻来一看,opencv1.0,去官网上一看.opencv2.49,瞬间有种蛋碎的赶脚.看着第二章介绍一个头文件,在opencv2.49以下招了半天都没找到...泪奔~~     只是看到一些论坛上说.这本书里还是讲了一些实用的算法的,所以还是决心细致读一读,里面的測试程序基本是亲手输入执行成功的,非常多样例我自也用不同的方法实现了一下,毕竟入门级新手.望各位老鸟勿喷.还请各位大手多多指点.    …
Python下opencv使用笔记(图像频域滤波与傅里叶变换) 转载一只程序喵 最后发布于2018-04-06 19:07:26 阅读数 1654  收藏 展开 本文转载自  https://blog.csdn.net/on2way/article/details/46981825 首先谢谢原创博主了,这篇文章对我帮助很大,记录下方便再次阅读. Python下opencv使用笔记(图像频域滤波与傅里叶变换) 前面曾经介绍过空间域滤波,空间域滤波就是用各种模板直接与图像进行卷积运算,实现对图像的处…