OpenCV
Leon_Chen0
得偿所愿
展开
-
OpenCV学习笔记(一):Win10(x64)+Qt5.8(MSVC2013)+OpenCV3.1.0配置过程
OpenCV学习笔记(一):Win10(x64)+Qt5.8(MSVC2013)+OpenCV3.1.0配置过程Win10(x64)+Qt5.8(MSVC2013)+OpenCV3.1.0配置过程配置需求原版 Win10(x64)Qt5.8(MSVC2013)OpenCV3.1.0第一步:安装QT 5.8 和OpenCV3.1.0 并配置环境变量D:\opencv-3.1.0\ope...原创 2019-08-27 11:09:25 · 440 阅读 · 0 评论 -
OpenCV学习笔记(十三):霍夫变换:HoughLines(),HoughLinesP(),HoughCircles( )
OpenCV学习笔记(十三):霍夫变换:HoughLines(),HoughLinesP(),HoughCircles( )1、霍夫线变换OpenCV支持三种不同的霍夫线变换,它们分别是:1)标准霍夫变换(Standard Hough Transform,SHT)2)多尺度霍夫变换(Multi-Scale Hough Transform,MSHT)3)累计概率霍夫变换(Progressi...原创 2019-09-09 18:40:26 · 6795 阅读 · 2 评论 -
OpenCV学习笔记(十四):重映射:remap( )
OpenCV学习笔记(十三):重映射:remap( )图像的坐标映射是通过原图像与目标图像之间建立一种映射关系,这种映射关系有两种,一种是计算原图像任意像素在映射后图像的坐标位置,另一种是计算变换后图像任意像素反映射在原图像的坐标位置。opencv中提供重映射等操作,其中重映射就是把一幅图像中某位置的像素放置到另一个图片指定位置的过程。为了完成映射过程,需要获得一些插值为非整数像素的坐标。对于...原创 2019-09-12 17:32:15 · 2212 阅读 · 0 评论 -
OpenCV学习笔记(十五):图像仿射变换:warpAffine(),getRotationMatrix2D()
OpenCV学习笔记(十五):图像仿射变换:warpAffine(),getRotationMatrix2D()一个任意的仿射变换都能表示为乘以一个矩阵(线性变换)接着再加上一个向量(平移)的形式。仿射变换(Affine Transformation或 Affine Map),是指在几何中**一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间的过程。**它保持了二维图形的==“平...原创 2019-09-12 18:42:40 · 1271 阅读 · 0 评论 -
OpenCV学习:仿射变换+投射变换+单应性矩阵
OpenCV学习:仿射变换+投射变换+单应性矩阵estimateRigidTransform():计算多个二维点对或者图像之间的最优仿射变换矩阵 (2行x3列),H可以是部分自由度,比如各向一致的切变。getAffineTransform():计算3个二维点对之间的仿射变换矩阵H(2行x3列),自由度为6.warpAffine():对输入图像进行仿射变换findHomography: 计算...原创 2019-09-13 12:33:20 · 1051 阅读 · 0 评论 -
OpenCV学习笔记(十六):直方图均衡化:equalizeHist()
OpenCV学习笔记(十六):直方图均匀化:equalizeHist()参考博客:直方图均衡化的数学原理直方图匹配的数学原理直方图均衡化广泛应用于图像增强中:直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给定图像的...原创 2019-09-13 16:38:33 · 2552 阅读 · 0 评论 -
OpenCV学习笔记(十七):查找并绘制轮廓:findContours(),drawContours(),approxPolyDP()
OpenCV学习笔记(十六):查找并绘制轮廓:findContours()1、findContours() 函数该函数使用Suzuki85算法从二值图像中检索轮廓。轮廓线是一种用于形状分析、目标检测和识别的有效工具。opencv轮廓检测之FindContours函数算法解释该函数从二值图像中检索轮廓,并返回检索到的轮廓数。函数将填充指针first_contour。它将包含指向第一个最外层轮...原创 2019-09-13 23:32:13 · 1894 阅读 · 0 评论 -
OpenCV学习笔记(十八):凸包,最小包围区域算子:convexHull(),minAreaRect(),minEnclosingTriangle(),minEnclosingCircle()
1、convexHull()函数计算出图像点集的凸包,根据图像的轮廓点,通过函数convexhull转化成凸包的点坐标,从而画出图像的凸包。void convexHull(InputArray points, // 输入的点集,一般是用图像轮廓函数求得的轮廓点OutputArray hull, // 输出的是凸包的二维xy点的坐标值,针对每一个轮廓形成的。bool clockwise...原创 2019-09-14 15:54:24 · 3300 阅读 · 0 评论 -
OpenCV学习(十九) :图像的矩:moments(),HuMoments()
OpenCV学习(十九) :轮廓的特征矩:moments()参考博客:图像的矩特征【图像算法】图像特征:几何不变矩–Hu矩如何理解概率论的“矩”?1、图像识别的一个核心问题是图像的特征提取,简单描述即为用一组简单的数据(数据描述量)来描述整个图像,这组数据月简单越有代表性越好。良好的特征不受光线、噪点、几何形变的干扰,图像识别技术的发展中,不断有新的描述图像特征提出,而图像不变矩就是其中...原创 2019-09-16 17:35:47 · 17517 阅读 · 4 评论 -
OpenCV学习(二十) :分水岭算法:watershed()
OpenCV学习(二十) :分水岭算法:watershed()参考博客:图像处理——分水岭算法OpenCV学习(7) 分水岭算法(1)Opencv分水岭算法——watershed自动图像分割用法 -牧野-OpenCV—分水岭算法分水岭算法是一种图像区域分割法,在分割的过程中,它会把跟临近像素间的相似性作为重要的参考依据,从而将在空间位置上相近并且灰度值相近(求梯度)的像素点互相连接起...原创 2019-09-17 20:55:21 · 2959 阅读 · 0 评论 -
OpenCV学习(二十一) :计算图像连通分量:connectedComponents(),connectedComponentsWithStats()
OpenCV学习(二十一) :计算图像连通分量:connectedComponents(),connectedComponentsWithStats()1、connectedComponents()函数计算二值图像中为图像的连通分量标注(标记)int cv::connectedComponents(cv::InputArrayn image, // inpu...原创 2019-09-18 16:50:50 · 5859 阅读 · 0 评论 -
OpenCV学习笔记(十七):图像修补:inpaint()
OpenCV学习笔记(十七):图像修补:inpaint()inpaint()函数使用区域邻域在图像中还原选定区域。void inpaint( InputArray src, // 表示要修复的图像,8位三通道或三通道InputArray inpaintMask, // 表示修复模板(掩模),8位单通道,非零区域为修补区域OutputArray dst, // 表示修复后的...原创 2019-09-18 17:15:39 · 5444 阅读 · 3 评论 -
OpenCV学习(二十) :直方图匹配、对比:calcHist(),minMaxLoc(),compareHist()
OpenCV学习(二十) :直方图匹配:calcHist(),minMaxLoc()1、calcHist()函数2、minMaxLoc()函数3、compareHist()函数4、示例:H-S彩色图像的色调、饱和度二维直方图绘制#include <opencv2/opencv.hpp>using namespace cv;using namespace st...原创 2019-09-18 19:21:53 · 1543 阅读 · 0 评论 -
OpenCV学习(二十二) :反向投影:calcBackProject(),mixChannels()
OpenCV学习(二十二) :反向投影:calcHist(),minMaxLoc(),compareHist()参考博客:反向投影backproject的直观理解opencv 反向投影颜色直方图的计算、显示、处理、对比及反向投影一、概述1、官方解释:反向投影是一种记录给定图像中的像素点如何适应直方图模型像素分布的方式。简单的讲,1)就是首先计算某一特征的直方图模型;(特征可以为色调+...原创 2019-09-20 16:32:19 · 911 阅读 · 0 评论 -
OpenCV学习(二十三) :模板匹配:matchTemplate(),minMaxLoc()
OpenCV学习(二十三) :模板匹配:matchTemplate()1、概述模板匹配是一种最原始、最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配问题。它是图像处理中最基本、最常用的匹配方法。模板匹配具有自身的局限性,主要表现在它只能进行平行移动,若原图像中的匹配目标发生旋转或大小变化,该算法无效。模板匹配就是在整个图像区域发现与给定子图...原创 2019-09-20 17:39:37 · 2283 阅读 · 0 评论 -
OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器
OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能。常见的滤波方法主要有高斯滤波,即采用离散化的高斯函数产生一组归一化的高斯核,然后基于高斯核函数对图像灰度矩阵的每一点进行加权求和。2)增强:增强边缘...原创 2019-09-09 17:10:51 · 795 阅读 · 0 评论 -
QT+OpenCV综合示例:图像混合(滑动条)
QT+OpenCV综合示例(一):载入、读取图片1、代码:2、运行结果:1、代码:1)opencv_imwrite_Q.pro 添加:INCLUDEPATH+= D:\opencv-3.1.0\opencv\build\includewin32:CONFIG(release, debug|release): LIBS += -LD:/opencv-3.1.0/opencv/build/x...原创 2019-09-09 14:00:27 · 677 阅读 · 0 评论 -
OpenCV学习笔记(二):3种常用访问图像中像素的方式
#include <opencv2/opencv.hpp>using namespace cv;using namespace std;int main(){ //【1】创建原始图并显示 Mat srcImage = imread("F:/C++/2. OPENCV 3.1.0/TEST/11.jpg"); imshow("原始图像",srcImag...原创 2019-09-03 15:52:52 · 285 阅读 · 0 评论 -
OpenCV学习笔记(三):多通道图像分离、混合算子:split(),merge()
OpenCV示例学习(三):多通道图像分离、混合算子:split()、merge()#include <opencv2/opencv.hpp>#define BRG_BLUE_CHANNEL 0#define BRG_GREEN_CHANNEL 1#define BRG_RED_CHANNEL 2using namespace cv;int main(int argc...原创 2019-09-03 16:56:53 · 686 阅读 · 0 评论 -
OpenCV学习笔记(三):图像对比度、亮度调整源码
OpenCV学习笔记(三):图像对比度、亮度调整源码主函数: #include <opencv2/opencv.hpp> using namespace cv; using namespace std; int g_nContrastValue=80; //对比度值 int g_nBrightValue=80; //亮度值 Mat g_srcImage, g_ds...原创 2019-09-03 18:03:09 · 391 阅读 · 0 评论 -
OpenCV示例学习(七):离散傅里变换(DFT)算子:getOptimalDFTSize(),copyMakeBorder(),magnitude(),log(),normalize()
OpenCV示例学习(三):离散傅里变换(DFT)算子:getOptimalDFTSize(),copyMakeBorder(),magnitude(),log(),normalize()#include <opencv2/opencv.hpp>using namespace cv;int main(int argc, char *argv[]){ QCoreApp...原创 2019-09-03 21:40:26 · 907 阅读 · 0 评论 -
OpenCV学习笔记(五):线性滤波-方框、均值、高斯:boxFilter(),blur(),GaussianBlur()
OpenCV学习笔记(五):线性滤波-方框、均值、高斯:boxFilter(),blur(),GaussianBlur()参考:https://blog.csdn.net/poem_qianmo/article/details/22745559代码:#include <opencv2/opencv.hpp>Mat g_srcImage,g_dstImage1,g_dstIm...原创 2019-09-04 18:04:49 · 550 阅读 · 0 评论 -
OpenCV学习笔记(六):非线性滤波-中值、双边:medianBlur(),bilateralFilter()
代码:#include <opencv2/opencv.hpp>Mat g_srcImage,g_dstImage1,g_dstImage2,g_dstImage3; //存储图片的Mat类型int g_nMedianBlurValue=10; //中值滤波参数值int g_nBilateralFilterValue=30; //双边滤波参数...原创 2019-09-04 18:19:56 · 391 阅读 · 0 评论 -
OpenCV学习笔记(七):形态学morpholgy(1):腐蚀/膨胀:enrode(),dilate()
OpenCV学习笔记(七):形态学(morpholgy):enrode(),dilate()代码#include <opencv2/opencv.hpp>using namespace cv;using namespace std;Mat g_srcImage, g_dstImage; //原始图和效果图int g_nTrackbarNumer = 1; ...原创 2019-09-05 22:37:15 · 811 阅读 · 0 评论 -
OpenCV学习笔记(八):形态学morpholgy(2):开/闭运算,形态学梯度、顶帽/黑帽morphologyEx()
OpenCV学习笔记(七):形态学(morpholgy):enrode(),dilate()数学形态学(Mathematical morphology) 是一门建立在格论和拓扑学基础之上的图像分析学科,是数学形态学图像处理的基本理论。其基本的运算包括:二值腐蚀和膨胀、二值开闭运算、骨架抽取、极限腐蚀、击中击不中变换、形态学梯度、Top-hat变换、颗粒分析、流域变换、灰值腐蚀和膨胀、灰值开闭运算...原创 2019-09-05 22:01:05 · 661 阅读 · 0 评论 -
OpenCV学习笔记(九): 漫水填充:floodFill()
OpenCV学习笔记(九): 漫水填充:floodFill()定义:漫水填充法是一种用特定的颜色填充联通区域(自动选中了和种子点相连的区域,接着将该区域替换成指定的颜色)通过设置可连通像素的上下限以及连通方式来达到不同的填充效果的方法。使用:1)经常被用来标记或分离图像的一部分,以便对其进行进一步处理或分析。2)从输入图像获取掩码区域(掩码会加速处理过程,或只处理掩码指定的像素点,操作的...原创 2019-09-06 12:56:56 · 1471 阅读 · 0 评论 -
OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize()
OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize()一、图像金字塔定义:图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。两种类型的图像金...原创 2019-09-06 17:04:47 · 1151 阅读 · 0 评论 -
QT+OpenCV综合示例:载入、读取图片
QT+OpenCV综合示例(一):载入、读取图片1、代码:2、运行结果:1、代码:1)opencv_imwrite_Q.pro 添加:INCLUDEPATH+= D:\opencv-3.1.0\opencv\build\includewin32:CONFIG(release, debug|release): LIBS += -LD:/opencv-3.1.0/opencv/build/x...原创 2019-09-07 15:44:39 · 2741 阅读 · 0 评论 -
OpenCV学习笔记(十一):阈值化:threshold(),adaptivethreshold()
OpenCV学习笔记(十一):阈值化:threshold(),adaptivethreshold()一、定义:1)固定阈值操作double threshold(InputArray src, // 输入图像,单通道OutputArray dst, // 输出图像double thresh, // 阈值的具体值double maxval, // 最大值,生成二值图时用到...原创 2019-09-07 20:40:26 · 591 阅读 · 0 评论 -
OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack()
OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack()参考博客:Harris角点检测原理详解Harris角点检测原理及C++实现OpenCV亚像素角点cornerSubPixel()源代码分析Taylor公式(泰勒公式)通俗+本质详解如何理解最小二乘法?一、概述1、角点定义:角点没有明确的...原创 2019-09-21 21:02:08 · 3745 阅读 · 1 评论