
OpenCV
文章平均质量分 85
物随心转
子曰:“学而时习之,不亦说乎?”
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
手眼标定(九点法)
一九点法标定是工业上使用广泛的二维手眼标定,所谓二维,即工作平面限制在一个平面上,常用于从固定平面抓取对象进行装配等操作,这种应用场景可以满足大多数的工业应用场景。九点标定的作用:1.求解x和y方向的分辨率2.求解图像坐标到xx坐标的仿射变换矩阵二、分辨率求解经过图像处理,我们可以得到九个点的图像上的坐标,然后按照从左到右,从上到下的规律拍好,利用这些点去计算分辨率//pt:点集;hj:行距;lj:列距bool CvGetClibrateData(CvPoint *原创 2020-06-02 11:35:00 · 18452 阅读 · 5 评论 -
图像金字塔
为什么要使用图像金字塔?在现实世界中,物体在不同尺度下,有着不同的结构。这就表明,我们如果从不同的尺度去观察同一个物体,会得出不一样的结果。比如,观察一棵树的适当尺度应该是“米”,而观察一片叶子可能需要更细粒度的尺度才能得出较好的结果。 当计算机系统要对一个未知的场景进行分析时,并不能够提前预知要用什么样的尺度来对图像信息中的兴趣结构(interesting structures)进行描述才是...原创 2020-08-22 19:12:03 · 771 阅读 · 0 评论 -
OpenCV自适应阈值化函数adaptiveThreshold
图像阈值化的一般目的是从灰度图像中分享目标区域和背景区域,然而仅仅通过设定固定阈值(固定阈值的求解可点此查看我写的博文)很难达到理想的分割效果。在实际应用中,我们可以通过某个像素的邻域以某种方法确定这个像素应该具有的阈值,进而保证图像中各个像素的阈值会随着周期围邻域块的变化而变化。在灰度图像中,灰度值变化明显的区域往往是物体的轮廓,所以将图像分成一小块一小块的去计算阈值往往会得出图像的轮廓,而固定...转载 2020-03-06 20:10:21 · 960 阅读 · 0 评论 -
OpenCV Mat 图像处理基本操作
1、图片加载、灰度图、 显示和保存cv::Mat img = cv::imread("01.jpg"); cv::Mat imageGray;cv::cvtColor(image, imageGray, CV_RGB2GRAY);//灰度转换 cv::waitKey(); cv::imwrite("save.jpg", img);2、图片宽、高、通道模式、平均值获取...原创 2020-03-06 14:58:36 · 1018 阅读 · 0 评论 -
OpenCV使用Shi-Tomasi 算法来实现角点检测
Shi-Tomasi 算法是Harris 算法的改进。Harris 算法最原始的定义是将矩阵 M 的行列式值与 M 的迹相减,再将差值同预先给定的阈值进行比较。后来Shi 和Tomasi 提出改进的方法,若两个特征值中较小的一个大于最小阈值,则会得到强角点。#include "pch.h"//-----------------------------------------------...原创 2020-01-01 21:19:33 · 282 阅读 · 0 评论 -
Opencv实现Harris角点检测
在图像处理和计算机视觉领域,兴趣点(interest points),或称做关键点(keypoints)、特征点(feature points)被大量用于解决物体识别,图像识别、图像匹配、视觉跟踪、三维重建等一系列问题。我们不再观察整幅图,而是选择某些特殊的点,然后对它们进行局部有的放矢的分析。如果能检测到足够多的点,同时它们的区分度很高,并且可以精确定位稳定的特征,那么这个方法就有使用价值。...转载 2020-01-01 20:14:15 · 497 阅读 · 0 评论 -
opencv生成棋盘格
// 头文件#include<iostream>#include<opencv2\opencv.hpp>// 命名空间using namespace std;using namespace cv;void main(){ int n_cols = 4; // 角点行的个数 int n_rows = 6; //角点列的个数 int n_pix...原创 2019-12-18 20:04:26 · 566 阅读 · 0 评论 -
opencv 读取视频检测人脸
// recognition.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include "pch.h"#include <opencv2/core/core.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/opencv.hpp>#inc...转载 2019-12-09 21:28:40 · 236 阅读 · 0 评论 -
分水岭算法
分水岭算法是一种基于区域的图像分割算法。在分割的过程中,它会把跟临近像素间的相似性作为重要的参考依据,从而将在空间位置上相近并且灰度值相近(求梯度)的像素点互相连接起来构成一个封闭的轮廓。算法原理介绍我们假设图像中每个像素的灰度值表示该点的海拔高度,那么每一个局部极小值及其影响区域称为集水盆地,而集水盆地的边界则形成分水岭。这些集水的盆地就是我们要识别的物体或区域。对灰度图的地形学解释...转载 2019-11-26 22:03:48 · 2936 阅读 · 0 评论 -
区域分离与合并
上一篇博客讨论的是由一组种子点来生长区域。另一种方法是首先将一幅图像细分为一组任意的不相交的区域,然后聚合或者分离这些区域。这里先介绍区域分割的基本概念,虽然抽象,但仔细琢磨一下还是可以理解的。令R表示整幅图像区域,并选择一个属性P.对R进行分割的一种方法是一次将他细分为越来越小的四象限区域,以便对于任何区域Ri,有P(Ri)=TRUE。我们从整个区域开始,如果P(Ri)=T...原创 2019-11-24 22:13:43 · 1622 阅读 · 0 评论 -
模板匹配算法
首先介绍一下模板匹配的适用场景:1、图像检索2、目标跟踪简单的说,模板匹配最主要的功能就是在一幅图像中去寻找和另一幅模板图像中相似度最高的部分,这就是模板匹配。它是研究某一特定对象物的图案位于图像的什么地方,进而识别对象物。是图像处理中最基本、最常用的匹配方法。模板匹配具有自身的局限性,主要表现在它只能进行平行移动,若原图像中的匹配目标发生旋转或大小变化,该算法无效。#inc...转载 2019-11-21 22:01:33 · 3528 阅读 · 0 评论 -
图像处理反向投影原理
反向投影的作用是什么? 反向投影用于在输入图像(通常较大)中查找特定图像(通常较小或者仅1个像素,称为模板图像)最匹配的点或者区域,也就是定位模板图像出现在输入图像的位置。直接看原文 https://blog.youkuaiyun.com/yee_yj/article/details/6035913具体过程就是:假设我们有一张100x100的输入图像,有一张10x10的模板图像,查找的过程...转载 2019-11-18 21:48:28 · 2250 阅读 · 0 评论 -
Canny算法原理以及opencv的实现
边缘检测的经典算法。该算法通常都是从高斯模糊开始,到基于双阈值实现边缘连接结束。但是在实际工程应用中,考虑到输入图像都是彩色图像,最终边缘连接之后的图像要二值化输出显示,所以完整的Canny边缘检测算法实现步骤如下:1. 彩色图像转换为灰度图像2. 对图像进行高斯模糊3. 计算图像梯度,根据梯度计算图像边缘幅值与角度4. 非极大值抑制5....转载 2019-11-17 15:45:14 · 1252 阅读 · 0 评论 -
Opencv图像轮廓
一、寻找轮廓findContours虽然然canny之类的边缘检测算法可以根据像素间的差异检测出轮廓边界的像素,但是它并没有将轮廓作为一个整体。下一步是要把这些像素组装成轮廓,这个函数就是findcontours()二、绘制轮廓drawContours主要流程1、加载源图像2、转成灰度图并模糊化降噪3、用Canny算子检测边缘,得到二值图像4、使用findCon...转载 2019-11-15 20:52:49 · 401 阅读 · 0 评论 -
python配置opencv环境
1、下载python3.72、它自带pip,直接输入pip install opencv-pythonpip install numpypip install matplotlib安装不成功则在pip install XXX命令的后面加上--default-timeout=100 -i https://pypi.tuna.tsinghua.edu.cn/simple即可。...原创 2019-11-15 19:47:33 · 233 阅读 · 0 评论 -
灰度直方图OpenCV
// recognition.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include "pch.h"#include <opencv2/opencv.hpp>#define cvQueryHistValue_1D( hist, idx0 ) \ ((float)cvGetReal1D( (hist)->bins, (i...转载 2019-11-06 20:54:44 · 184 阅读 · 0 评论 -
基于OpenCV的图像对比度调节,亮度调节
#include "pch.h"#include <iostream>#include <opencv2/opencv.hpp>#include <Windows.h>#include <opencv2/highgui/highgui.hpp>using namespace cv;using namespace std;static...原创 2019-11-04 20:56:12 · 159 阅读 · 0 评论 -
OpenCV检测角点
harris角点检测算法步骤 1.利用Soble计算出XY方向的梯度值 2.计算出Ix^2,Iy^2,Ix*Iy 3.利用高斯函数对Ix^2,Iy^2,Ix*Iy进行滤波 4.计算局部特征结果矩阵M的特征值和响应函数C(i,j)=Det(M)-k(trace(M))^2 (0.04<=k<=0.06) 5.将计算出响应函数的值C进行非极大值抑制,滤除一...转载 2019-11-03 19:08:58 · 300 阅读 · 0 评论 -
OpenCV实现人脸识别
该程序对头像很小的图片效果不是很好。VS2017+OpenCV3.5主要步骤1、读取图像2、转为灰度图3、直方图均衡化,增加对比度4、载入分类器5、检测关于脸部位置#include <opencv2/opencv.hpp>#include <cstdio>#include <cstdlib>#include <Windo...转载 2019-10-24 20:09:53 · 358 阅读 · 0 评论 -
SURF算法原理
1、先对图像进行高斯滤波2、选用二阶标准高斯函数作为滤波器,通过特定核间的卷积计算二阶偏导数,计算出Hessian矩阵3、计算判别式的值,根据判别式取值的正负,来判断该点是不是极值点4、利用非极大值抑制初步确定的特征点5、精确定位极值点6、选取特征点的主方向7、构造surf特征点的描述算子...原创 2019-10-24 08:39:13 · 1076 阅读 · 0 评论