
OpenCV
文章平均质量分 75
PHILOS_THU
Life has to end, love doesn't!
展开
-
【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 评论 -
【ubuntu+opencv3】ubuntu16.04+qt5+opencv3.2.0编译与安装
在网上找了很多资料,终于把opencv3.2.0在ubuntu16.04下安装成功了,由于使用qt作为开发工具,这里也顺便介绍下qt的安装与配置。原创 2017-06-09 17:59:20 · 9818 阅读 · 0 评论 -
【OpenCV3】cv::Mat类成员函数详解
cv::Mat为OpenCV2和OpenCV3中最重要的类,不夸张得说,掌握了cv::Mat的操作,就掌握了OpenCV大半,这里主要介绍cv::Mat类的成员函数及其使用。原创 2017-03-28 08:58:26 · 14105 阅读 · 1 评论 -
【OpenCV3】将图像指定区域使用另一图像(或ROI)覆盖
在图像处理中,有时会遇到使用使用一幅图像(或ROI)覆盖(替换)另一图像的指定区域,直接的方法是逐个像素进行复制,但这是一种效率很低的操作,下面介绍opencv中一种效率较高且简便的操作。原创 2017-06-02 13:20:35 · 30087 阅读 · 0 评论 -
【OpenCV3】双线性插值
最近找工作, 双线性插值原理:原创 2014-11-03 16:55:04 · 3202 阅读 · 1 评论 -
【OpenCV3】OpenCV3.0 在WIN8+VS2012环境下的配置
主要介绍了win8系统下opencv3.0在vs2012下的配置。原创 2014-11-03 18:46:38 · 1997 阅读 · 1 评论 -
【OpenCV3】图像的读取、显示与保存
OpenCV3中,图片的读取,通过函数cv::imread()来实现的;显示通过函数cv::imshow()来实现;而保存则通过cv::iimwrite()来实现。原创 2014-12-05 16:14:06 · 25639 阅读 · 2 评论 -
【OpenCV】cv::Mat对单个像素的访问和操作
我们在使用OpenCV进行图像处理的过程中,经常会涉及到对指定位置像素的读取和修改,下面我们就介绍OpenCV中几种常用的对指定位置像素值的读取和修改操作。原创 2017-03-08 10:10:03 · 19503 阅读 · 3 评论 -
【算法+OpenCV】基于三次Bezier原理的曲线拟合算法C++与OpenCV实现
Bezier曲线拟合算法是一种相对较容易实现、且拟合的效果较好的算法。关于Bezier曲线原理,请参照(Bezier曲线原理),这里就不再做具体介绍了,我们使用的是Besier三次曲线拟合原理。下面主要介绍算法的实现过程。原创 2017-03-08 17:40:02 · 15085 阅读 · 9 评论 -
【OpenCV3】cv::Mat中最值和均值的求解
我们知道cv::Mat是OpenCV2和OpenCV3中最基本的数据结构,不仅可以作为图像数据的容器,也可以作为其他类型数据的容器。那么,我们在使用cv::Mat进行数据的处理时,会经常面临求解其最值和均值的问题。原创 2017-03-22 08:51:30 · 30758 阅读 · 1 评论 -
【算法+OpenCV】图像极坐标变换及基于OpenCV的实现
在医学图像处理,尤其是在处理血管断层扫描类(如OCT、IVUS等)图像的过程中,不可避免的会使用到极坐标变换,也即是我们通常所说的“方转圆”。极坐标变换的关键在于,根据极坐标变换前的图像(我们称为“方图”)确定极坐标变换后的图像(我们称为“圆图”)上每个像素点的像素值。也即是找到“圆图”和“方图”间几何坐标的对应关系。原创 2017-03-23 09:49:44 · 18416 阅读 · 23 评论 -
【OpenCV3】Opencv3.2.0在Hisi3521下的交叉编译和移植
hisi3520、hisi3521这两年在图像视频处理领域的应用越来越广泛,作为图像处理神器opencv与其结合能产生极好的化学反应,这里就介绍下如何在hisi3521下交叉编译和安装opencv。原创 2017-06-13 11:32:33 · 5381 阅读 · 0 评论 -
【OpenCV3】RGB图像向CMYK颜色空间转换
RGB(红色,绿色,蓝色)是表示光发射的颜色空间。CYMK(青色,黄色,品红色,黑色)表示光吸收的颜色空间原创 2017-06-15 17:39:01 · 10516 阅读 · 5 评论 -
【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::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】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 评论 -
【OpenCV3】如何给图像添加(不)透明度通道
透明度通道,又叫alpha通道,做用于记录图像的透明度信息。具体参照【百度百科】“alpha通道”中的介绍。透明度确切的说应该叫不透明度(Opacity),取最小值0时,表示完全透明;取最大值255时,表示完全不透明;取值越大表示越不透明。通常遇到的图像如bmp图像、jpg图像都是单通道(灰度图)、RGB三通道(彩色)图像,而没有透明度通道,那么如何使用opencv给没有透明度通道的图像添加透明度...原创 2018-05-03 19:30:03 · 9446 阅读 · 2 评论 -
【OpenCV】IplImage类型图像ROI矩形区域的快速获取
一直使用的是OpenCV C++的接口,但是有些只能用纯c的环境下,就不得不用c接口了,IplImage是c接口图像数据最基本的数据结构,获取其ROI区域的过程如下,首先通过cvSetImageROI(IplImage* src, CvRect rect)设定ROI区域,然后将给部分图像数据拷贝出来,最后通过cvResetImageROI(IplImage* src)重置ROI区域即可。这里为了使...原创 2018-04-21 18:52:16 · 3274 阅读 · 0 评论 -
【OpenCV3】图像最大轮廓检测——cvFindBiggestContour()封装
此前在《【OpenCV3】图像轮廓查找与绘制——cv::findContours()与cv::drawContours()详解》一文中,详细介绍了图像轮廓的检测与绘制,但是在实际的应用中,往往需要检测目标的最大轮廓,但是OpenCV本身并没有封装这样一个函数,下面就贴上封装好的接口,供参考使用。说明:对于最大轮廓的定义,有些以轮廓的点数最多为标准,有的以所包围的面积最大为标准,这里将两种都实现一下...原创 2018-04-23 21:52:07 · 13189 阅读 · 2 评论 -
【Machine Learning】OpenCV中的K-means聚类
在上一篇(【Machine Learning】K-means算法及优化)中,我们介绍了K-means算法的基本原理及其优化的方向。opencv中也提供了K-means算法的接口,这里主要介绍一下如何在python+opencv的环境下,使用k-means接口。原创 2017-11-17 13:29:52 · 3535 阅读 · 0 评论 -
【caffe】windows下caffe+vs2013+python2.7+cuda8.0+cmake3.8编译与配置
项目的需要,终究还是用到了深度学习,Caffe无疑是我这种菜鸟最好的入门平台,然鹅,事情并没有想象的那么简单!!!单是编译caffe的库就已经把我折腾得灰头土脸了,搜了很多caffe的编译教程,一步一步得去操作,没有一个编译通过的,起初是CMake不通过,不甘心,又花了两天时间逐个编译出caffe的依赖库,总算CMake通过了,生成vs2013编译工程后,总算可以Build了,各种语法错误,简直让人心力交瘁。用微软版的免依赖库版,也是各种编译错误。就在要放弃的时候,又重新开始尝试了一下,仔细分析了CMake原创 2017-07-15 17:11:37 · 3658 阅读 · 5 评论 -
【caffe】windows下vs2013+opencv3.2.0+opencv_contrib(包含dnn)+cmake3.8编译与配置
opencv目前已经支持caffe训练模型的读取,以及使用模型进行预测,这个功能是dnn模块实现的,而这个模块位于opencv_contrib中,此前编译的opencv3.2.0并没有将opencv_contrib中的模块加进来。因此,这里重新将opencv_contrib加入到opencv3.2.0进行编译。原创 2017-07-19 15:23:25 · 4394 阅读 · 0 评论 -
【caffe】使用自己的图像数据训练lenet并用opencv进行预测
前面已经介绍了使用使用mnist数据集进行训练lenet,并使用opencv加在caffemodel进行预测。更进一步也是最终的目的,还是要学会使用自己的数据集训练caffemodel并进行预测。这里先以训练lenet为例进行说明。原创 2017-08-01 12:22:51 · 5314 阅读 · 4 评论 -
【OpenCV3】cv::Mat的定义与初始化
cv::Mat是OpenCV2和OpenCV3中基本的数据类型,在cv::Mat类中,关于cv::Mat的定义和初始化有多种不同的形式,这里,将对其进行详尽的总结和介绍。原创 2017-03-27 17:48:18 · 57537 阅读 · 3 评论 -
【OpenCV3】阈值化操作——cv::threshold()与cv::adaptiveThreshold()详解
阈值化操作在图像处理中是一种常用的算法,比如图像的二值化就是一种最常见的一种阈值化操作。opencv2和opencv3中提供了两种阈值化操作接口,即cv::thread()与cv::adaptiveThreshold(),这里将对这两个接口进行介绍和对比。原创 2017-03-29 09:21:53 · 55569 阅读 · 13 评论 -
【OpenCV3】平滑处理详解
“平滑”通常又称“模糊”,是一种简单常用的图像处理操作。进行平滑处理的原因有很多,但通常是用来去除噪声和相机失真,平滑在按照一定的原理来降低图像分辨率中也有重要应用。OpenCV2和OpenCV3中提供了5种不同的平滑处理方法,每一种都有自己相关的库函数,每一个库函数实现的平滑都略有不同。在所有的平滑操作函数中,src和dst两个参数都分别代表源图像和目标图像。除此之外,每一种平滑操作都具有特定的相关操作参数。其中,唯一的共同参数是最后的borderType,这个参数表示平滑操作的过程中如何处理图像的边缘原创 2017-03-29 14:00:45 · 12450 阅读 · 1 评论 -
【OpenCV3】旋转矩形(cv::RotateRect)的绘制
在OpenCV3中的绘图详解中,我们详细地介绍了opencv3中所支持的各种几何形状的绘制,其中矩形的绘制接口为cv::rectangle(),但是这个接口只能用于绘制正常矩形(即cv::Rect定义的矩形,长是水平,高是竖直),但不支持旋转矩形(cv::RotateRect)的绘制。原创 2017-04-11 17:48:02 · 25642 阅读 · 0 评论 -
【OpenCV3】级联分类器目标检测——cv::CascadeClassifier简介
Cascade级联分类器是一种快速简单的分类方法,opencv2和opencv3中提供了完整的cascade分类器的训练和检测方法,本篇主要介绍下级联分类器的检测方法。原创 2017-04-12 19:55:51 · 15177 阅读 · 4 评论 -
【OpenCV3】级联分类器训练——traincascade快速使用详解
上一篇(OpenCV3中的级联分类器目标检测——cv::CascadeClassifier简介)介绍了如何使用级联分类器进行目标检测。这里,我们介绍一下如何训练自己的级联分类器。原创 2017-04-15 11:25:43 · 26900 阅读 · 86 评论 -
【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】图像旋转与平移——cv::warpAffine()详解
图像旋转和平移是图像处理中常用的一种操作,opencv2和opencv3中对图像的旋转和平移都是通过仿射变换函数cv::warpAffine()来实现的。原创 2017-04-26 14:08:47 · 61379 阅读 · 6 评论 -
【OpenCV3】图像通道分离与合并——cv::split()与cv::merge()详解
在图像处理中,尤其是处理多通道图像时,有时需要对各个通道进行分离,分别处理;有时还需要对分离处理后的各个通道进行合并,重新合并成一个多通道的图像。opencv2和opencv3中实现图像通道的合并与分离的函数分别是cv::split()和cv::merge()。原创 2017-04-27 09:11:06 · 64676 阅读 · 0 评论 -
【OpenCV3】cv::Mat中的数据按行列写入txt文件中
在使用opencv进行图像处理的过程中,经常会涉及到将文件中的数据读入到cv::Mat中,或者将cv::Mat中的数据写入到txt文件中。原创 2017-05-11 16:29:12 · 9469 阅读 · 2 评论 -
【OpenCV3】基于双目视觉的三维重建
opencv中双目视觉立体重建根据的是三角形原理,在经过摄像机立体标定之后获取到单个摄像机的参数和双目系统的立体参数,根据三角形原理,我们即可实现对点云的三维重建,这里我们只介绍对单个点的三维重建。原创 2017-05-11 16:57:40 · 13262 阅读 · 4 评论 -
【OpenCV3】透视变换——cv::getPerspectiveTransform()与cv::warpPerspective()详解
透视变换(Perspective Transformation)是将成像投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。原创 2017-05-19 10:04:13 · 73135 阅读 · 23 评论 -
【OpenCV3】cv::Mat块访问与操作(ROI区域的选取)
cv::Mat作为OpenCV2和OpenCV3中最基本的数据类型,不仅支持单个像素的访问,也支持多种形式的块的访问,这极大得方便了实际的使用和操作。原创 2017-03-27 18:02:01 · 13817 阅读 · 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】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 评论 -
【OpenCV3】视频读写——cv::VideoCapture和cv::VideoWriter详解
OpenCV3和OpenCV2类似,视频的读、写操作,分别通过cv::VideoCapture和cv::VideoWriter两个类来实现。原创 2017-03-30 13:51:03 · 63862 阅读 · 10 评论