
机器视觉
文章平均质量分 74
PHILOS_THU
Life has to end, love doesn't!
展开
-
【算法+OpenCV】基于opencv的直线和曲线拟合与绘制(最小二乘法)
最小二乘法多项式曲线拟合,是常见的曲线拟合方法,有着广泛的应用,这里在借鉴最小二乘多项式曲线拟合原理与实现的原理的基础上,介绍如何在OpenCV来实现基于最小二乘的多项式曲线拟合。原创 2017-06-05 13:17:56 · 57849 阅读 · 64 评论 -
【OpenCV3】彩色映射——cv::applyColorMap()与cv::LUT()详解
在图像处理的过程中,我们通常会遇到将灰度图像映射成彩色图像的情形(即通常所说的伪彩映射),OpenCV2和OpenCV3中均提供了两个用于伪彩映射的函数——cv::applyColorMap()和cv::LUT()。1、cv::applyColorMap()cv::applyColorMap()是使用opencv预定义的colormap,将灰度图映射成彩色图像。opencv中提供了12个预定义的c...原创 2017-03-31 14:58:13 · 15357 阅读 · 3 评论 -
【OpenCV3】视频读写——cv::VideoCapture和cv::VideoWriter详解
OpenCV3和OpenCV2类似,视频的读、写操作,分别通过cv::VideoCapture和cv::VideoWriter两个类来实现。原创 2017-03-30 13:51:03 · 63862 阅读 · 10 评论 -
【OpenCV3】OpenCV3.2.0在VS2013环境下Cmake编译与快速配置
官网(opencv.org)目前提供的安装包只提供了vs2015(vc14)的编译版本。所以,若想在其他编译环境(如vs2010、vs2012、vs2013等)下使用,需要下载opencv3.2.0的源码,在cmake下自行编译。我是在64位WIN7+VS2013环境下使用CMake3.7.2进行编译的,在其他Windows版本、其他VS版本、其他OpenCV版本和其他CMake版本下的编译过程都是类似的。原创 2017-03-30 09:12:49 · 14750 阅读 · 9 评论 -
【算法+OpenCV】基于三次Bezier原理的曲线拟合算法C++与OpenCV实现
Bezier曲线拟合算法是一种相对较容易实现、且拟合的效果较好的算法。关于Bezier曲线原理,请参照(Bezier曲线原理),这里就不再做具体介绍了,我们使用的是Besier三次曲线拟合原理。下面主要介绍算法的实现过程。原创 2017-03-08 17:40:02 · 15085 阅读 · 9 评论 -
【python图像处理】彩色映射
在图像处理,尤其是医学图像处理的过程中,我们经常会遇到将灰度图映射成彩色图的情形,如将灰度图根据灰度的高低映射成彩虹色图。这个过程我们通常将之称为伪彩映射,伪彩映射的关键在于找到合适的彩色映射表,即colormap,也称color bar。前段时间做了一个涉及到伪彩映射的项目,在找colormap的过程中,我发现Python的matplotlib模块中内嵌了一大批常用的colormaps,使用原创 2017-03-08 10:55:27 · 44084 阅读 · 3 评论 -
【OpenCV3】双线性插值
最近找工作, 双线性插值原理:原创 2014-11-03 16:55:04 · 3202 阅读 · 1 评论 -
【OpenCV3】将图像指定区域使用另一图像(或ROI)覆盖
在图像处理中,有时会遇到使用使用一幅图像(或ROI)覆盖(替换)另一图像的指定区域,直接的方法是逐个像素进行复制,但这是一种效率很低的操作,下面介绍opencv中一种效率较高且简便的操作。原创 2017-06-02 13:20:35 · 30087 阅读 · 0 评论 -
【OpenCV3】RGB图像向CMYK颜色空间转换
RGB(红色,绿色,蓝色)是表示光发射的颜色空间。CYMK(青色,黄色,品红色,黑色)表示光吸收的颜色空间原创 2017-06-15 17:39:01 · 10516 阅读 · 5 评论 -
【caffe】OpenCV Load caffe model
上一篇,我们介绍了opencv_contrib中的模块在windows下的编译,也提到了其中的dnn模块可以读取caffe的训练模型用于目标检测,这里我们具体介绍一下如何使用dnn读取caffe模型并进行目标分类。原创 2017-07-24 11:46:57 · 5990 阅读 · 11 评论 -
【caffe】mnist数据集lenet训练与测试
本篇主要介绍mnist数据集格式的转换,并测试Caffe的训练和检测效果。原创 2017-07-19 12:25:16 · 5054 阅读 · 0 评论 -
【caffe】使用draw_net绘制net结构
caffe的python编译模块提供了绘制net结构的功能,可实现对网络结构的绘制,这极大的方便了对网络结构的理解和分析,这里介绍下绘制的过程。原创 2017-08-03 16:09:44 · 3084 阅读 · 0 评论 -
【python图像处理】gif动态图的解析与合成
gif动态图是在现在已经司空见惯,朋友圈里也经常是一言不合就斗图。这里,就介绍下如何使用python来解析和生成gif图像。原创 2017-08-24 20:11:21 · 36363 阅读 · 6 评论 -
【python图像处理】极坐标变换及插值算法
在 图像极坐标变换及基于OpenCV的实现一文中,介绍了图像极坐标变换的基本原理和基于opencv的实现,这里我们再介绍一下基于python的实现,以及在极坐标变换中所用的几种常用的插值算法,即最邻近插值、双线性插值以及三次卷积插值。原创 2017-05-05 09:55:28 · 9359 阅读 · 4 评论 -
【OpenCV3】Stitcher图像拼接
OpenCV3中提供了一个用于图像拼接的模块——Stitcher,可以将连续拍摄的图像序列,拼接成一幅全景画面。如下所示是56幅连续拍摄的图像:0.png1.png2.png3.png4.png处理代码如下:#include < stdio.h > #include < opencv2\opencv.hpp > #include < opencv2\stitc...原创 2018-05-22 15:10:00 · 16460 阅读 · 31 评论 -
【深度学习】制作VOC2007数据集用于Faster-RCNN训练
制作VOC2007数据集用于Faster-RCNN训练:VOC2007格式是faster-RCNN中官方给出的用于训练的数据集,把它下载下来用frcnn/tool里的训练程序跑一跑就可以得到自己的训练网络了,首先说明一下我们需要准备的文件:1. 训练所需的图片;2. 图片上ROI标注信息的XML文件;3. 将数据集分割为三部分分别用于frcnn进行训练,验证,测试等。第一步:图片的...转载 2018-07-17 16:14:02 · 3145 阅读 · 1 评论 -
【OpenCV3】cv::compare()使用详解
cv::compare()主要用于两个图像之间进行逐像素的比较,并输出比较的结果。具体用法如下:cv::compare() bool cv::compare( cv::InputArray src1, // 输入数组1 cv::InputArray src2, // 输入数组2 cv::OutputArray dst, // 输出数组 int cmpop // 比较操作子,见下表 ...原创 2018-08-12 12:47:36 · 9406 阅读 · 3 评论 -
【OpenCV3】cv::convertScaleAbs()使用详解
cv::convertScaleAbs()用于实现对整个图像数组中的每一个元素,进行如下操作: 该操作可实现图像增强等相关操作的快速运算,具体用法如下:void cv::convertScaleAbs( cv::InputArray src, // 输入数组 cv::OutputArray dst, // 输出数组 double alpha = 1.0, // 乘数因子 do...原创 2018-08-12 13:22:41 · 61796 阅读 · 2 评论 -
【OpenCV3】图像轮廓查找与绘制——cv::findContours()与cv::drawContours()详解
查找图像的轮廓在图像处理及应用中扮演着重要的角色。那么什么是轮廓(contour)?《Learning OpenCV 3》中给出的定义是这样的——轮廓即是以某种方式表示图像中的曲线的点的列表。这种表示可以根据实际的情形不同而不同。表示一条曲线的方式有很多种。OpenCV中,轮廓是由STL风格的vector<>模板对象表示的,其中vector中的每个元素都编码了曲线上,下一点的位置信息。...原创 2017-04-05 08:56:26 · 87077 阅读 · 6 评论 -
【OpenCV3】模板匹配——cv::matchTemplate()详解
模板匹配通常被用于目标检测、相似度分析中,opencv2和opencv3中提供了一个专门用于模板匹配的函数——cv::matchTemplate()。原创 2017-04-05 12:23:14 · 83476 阅读 · 23 评论 -
【OpenCV3】透视变换——cv::getPerspectiveTransform()与cv::warpPerspective()详解
透视变换(Perspective Transformation)是将成像投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。原创 2017-05-19 10:04:13 · 73135 阅读 · 23 评论 -
【OpenCV3】基于双目视觉的三维重建
opencv中双目视觉立体重建根据的是三角形原理,在经过摄像机立体标定之后获取到单个摄像机的参数和双目系统的立体参数,根据三角形原理,我们即可实现对点云的三维重建,这里我们只介绍对单个点的三维重建。原创 2017-05-11 16:57:40 · 13262 阅读 · 4 评论 -
【python图像处理】给图像添加透明度(alpha通道)
我们常见的RGB图像通常只有R、G、B三个通道,在图像处理的过程中会遇到往往需要向图像中添加透明度信息,如公司logo的设计,其输出图像文件就需要添加透明度,即需要在RGB三个通道的基础上添加alph原创 2017-05-09 11:00:38 · 55979 阅读 · 5 评论 -
【python图像处理】两幅图像的合成一幅图像(blending two images)
将两幅图像合成一幅图像,是图像处理中常用的一种操作,python图像处理库PIL中提供了多种种将两幅图像合成一幅图像的接口。原创 2017-05-09 10:27:50 · 62249 阅读 · 8 评论 -
【python图像处理】图像的滤波(ImageFilter类详解)
在图像处理中,经常需要对图像进行平滑、锐化、边界增强等滤波处理。在使用PIL图像处理库时,我们通过Image类中的成员函数filter()来调用滤波函数对图像进行滤波,而滤波函数则通过ImageFilter类来定义的。原创 2017-05-08 11:50:52 · 29948 阅读 · 0 评论 -
【python图像处理】几何图形的绘制与文字的绘制(ImageDraw类详解)
python PIL图像处理模块中的ImageDraw类支持各种几何图形的绘制和文本的绘制,如直线、椭圆、弧、弦、多边形以及文字等。原创 2017-05-05 16:01:33 · 48802 阅读 · 3 评论 -
【python图像处理】图像的缩放、旋转与翻转
图像的几何变换,如缩放、旋转和翻转等,在图像处理中扮演着重要的角色,python中的Image类分别提供了这些操作的接口函数原创 2017-04-27 09:54:10 · 105036 阅读 · 7 评论 -
【python图像处理】图像的增强(ImageEnhance类详解)
python中PIL模块中有一个叫做ImageEnhance的类,该类专门用于图像的增强处理,不仅可以增强(或减弱)图像的亮度、对比度、色度,还可以用于增强图像的锐度。原创 2017-05-03 16:19:59 · 56075 阅读 · 9 评论 -
【OpenCV3】图像通道分离与合并——cv::split()与cv::merge()详解
在图像处理中,尤其是处理多通道图像时,有时需要对各个通道进行分离,分别处理;有时还需要对分离处理后的各个通道进行合并,重新合并成一个多通道的图像。opencv2和opencv3中实现图像通道的合并与分离的函数分别是cv::split()和cv::merge()。原创 2017-04-27 09:11:06 · 64676 阅读 · 0 评论 -
【python图像处理】图像的读取、显示与保存
python作为机器学习和图像处理的利器,收到越来越多的推崇,特别是在图像处理领域,越来越多的研究和开发开始转向使用python语言,下面就介绍python图像处理中最基本的操作,即图像的读取显示与保存。原创 2017-04-25 13:56:39 · 27094 阅读 · 0 评论 -
【OpenCV3】HOG+SVM目标识别
SVM,即支持向量机,在结合相关特征描述子之后,在目标识别,如行人识别、汽车识别、人脸识别等领域中有着重要应用。opencv中提供了HOG特征描述子,这种特征提供支持SVM的接口。这不再进行原理性的介绍,直接介绍如何使用opencv进行SVM+HOG训练和检测。 1、svm+hog训练 #include <iostream> #include <fstrea...原创 2017-04-15 15:45:03 · 22760 阅读 · 204 评论 -
【OpenCV3】级联分类器训练——traincascade快速使用详解
上一篇(OpenCV3中的级联分类器目标检测——cv::CascadeClassifier简介)介绍了如何使用级联分类器进行目标检测。这里,我们介绍一下如何训练自己的级联分类器。原创 2017-04-15 11:25:43 · 26900 阅读 · 86 评论 -
【OpenCV3】级联分类器目标检测——cv::CascadeClassifier简介
Cascade级联分类器是一种快速简单的分类方法,opencv2和opencv3中提供了完整的cascade分类器的训练和检测方法,本篇主要介绍下级联分类器的检测方法。原创 2017-04-12 19:55:51 · 15177 阅读 · 4 评论 -
【OpenCV3】旋转矩形(cv::RotateRect)的绘制
在OpenCV3中的绘图详解中,我们详细地介绍了opencv3中所支持的各种几何形状的绘制,其中矩形的绘制接口为cv::rectangle(),但是这个接口只能用于绘制正常矩形(即cv::Rect定义的矩形,长是水平,高是竖直),但不支持旋转矩形(cv::RotateRect)的绘制。原创 2017-04-11 17:48:02 · 25642 阅读 · 0 评论 -
【OpenCV3】棋盘格角点检测与绘制——cv::findChessboardCorners()与cv::drawChessboardCorners()详解
棋盘格法是摄像机标定中常用的一种方法,在使用该方法时需要对棋盘格的角点进行检测。opencv中封装了一个专门用于棋盘格角点检测的函数即cv::findChessboardCorners(),同时,也提供了一个专门用于绘制棋盘格角点的函数cv::drawChessboardCorners()。下面将对这两个函数进行详细的介绍。原创 2017-04-07 17:35:57 · 48737 阅读 · 23 评论 -
【OpenCV3】角点检测——cv::goodFeaturesToTrack()与cv::cornerSubPix()详解
一提到角点检测,最常用的方法莫过于Harris角点检测,opencv中也提供了Harris角点检测的接口,即cv::cornerHarris(),但是Harris角点检测存在很多缺陷(如角点是像素级别的,速度较慢等),因此我们这里将介绍opencv中的另一个功能更为强大的函数——cv::goodFeaturesToTrack(),它不仅支持Harris角点检测,也支持Shi Tomasi算法的角点检测。但是,该函数检测到的角点依然是像素级别的,若想获取更为精细的角点坐标,则需要调用cv::cornerSub原创 2017-04-07 14:27:31 · 60713 阅读 · 19 评论 -
【OpenCV3】直线拟合——cv::fitLine()详解
在图像处理中,通常会遇到根据给定的点集(比如轮廓)拟合出一条直线的情形。opencv2和opencv3中提供了一个专门用于直线拟合的函数——cv::fitLine()。原创 2017-04-07 09:56:22 · 75698 阅读 · 15 评论 -
【OpenCV3】cv::divide()使用详解
cv::divide()是一个简单的除法函数,有以下两种用法:用法1:void cv::divide( cv::InputArray src1, // 输入数组1 (分子) cv::InputArray src2, // 输入数组1 (分母) cv::OutputArray dst, // 输出数组 (scale*src1/src2) double scale = 1.0, //...原创 2018-08-12 14:13:32 · 13808 阅读 · 2 评论