openCV
文章平均质量分 91
航空界的小爬虫
这个作者很懒,什么都没留下…
展开
-
OpenCV:《OpenCV3编程入门》全书概要
一、模块calib3d:相机校准和三位重建contrib:人脸识别、立体匹配、人工视网膜模型core:基本数据结构、动态数据结构、绘图函数、数组操作相关函数、辅助功能与系统函数和宏、与OpenGL的互操作imgproc:图像处理模块:线性和非线性的图像滤波、图像几何变换、直方图相关、结构分析和形状描述、运动分析和对象跟踪、特征检测、目标检测features2d:特征检测和描...原创 2020-02-29 17:35:16 · 679 阅读 · 0 评论 -
YOLO算法(you only look once)
一:简介比较流行的算法可以分为两类一类是基于Region Proposal的R-CNN系算法(R-CNN,Fast R-CNN, Faster R-CNN),它们是two-stage的,需要先使用启发式方法(selective search)或者CNN网络(RPN)产生Region Proposal,然后再在Region Proposal上做分类与回归。CNN算法采用滑动窗口方式进行目...原创 2020-02-12 14:17:56 · 1010 阅读 · 0 评论 -
OpenCV:级联分类器的训练
一、准备知识网上其它教程训练分类器所采用的是基于opencv2.x中的open_haartraining.exe,为训练haar特征的分类器,现在新版本已被弃用;因此本文的级联分类器是基于OpenCV3.x版本制作,所用程序为opencv_traincascade.exe和opencv_createsamples.exe。1、opencv_traincascade.exe(生成...原创 2019-11-28 22:49:32 · 1188 阅读 · 0 评论 -
opencv问题:扩展库文件xfeatures2d无法调用
读取不了扩展库文件,程序报错解决方法:直接将修改为头文件位置目录,编译即可通过原创 2019-11-06 16:34:40 · 3692 阅读 · 0 评论 -
openCV:图像分割
基于距离变换与分水岭的图像分割:图形分割:图像分割(Image Segmentation)是图像处理最重要的处理手段之一图像分割的目标是将图像中像素根据一定的规则分为若干(N)个cluster集合,每个集合包含一类像素。根据算法分为监督学习方法和无监督学习方法,图像分割的算法多数都是无监督学习方法 - KMeans步骤:1.将白色背景变成黑色-目的是为后面的变换做准备2. 使...原创 2019-10-23 20:10:51 · 769 阅读 · 0 评论 -
openCV:点多边形测试
pointPolygonTest测试一个点是否在给定的多边形内部,边缘或者外部#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>using namespace std;using namespace cv;int main(int argc, char** ar...原创 2019-10-23 15:32:03 · 173 阅读 · 0 评论 -
openCV:图形矩
图像矩:提取图像边缘发现轮廓计算每个轮廓对象的矩计算每个对象的中心、弧长、面积#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>using namespace std;using namespace cv;Mat src, gray_src;in...原创 2019-10-23 15:14:49 · 254 阅读 · 0 评论 -
openCV:轮廓周围绘制矩形框和圆形框
减少多边形轮廓的点数approxPolyDPcv::boundingRect最小矩形cv::minAreaRect旋转矩形cv::minEnclosingCircle最小区域圆形cv::fitEllipse最小椭圆1、首先将图像变为二值图像2、发现轮廓,找到图像轮廓3、通过相关API在轮廓点上找到最小包含矩形和圆,旋转矩形与椭圆。4、绘制它们。#include <o...原创 2019-10-23 14:53:00 · 482 阅读 · 0 评论 -
openCV:凸包绘制
凸包:多变形边缘或者内部任意两个点的连线都包含在多边形边界或者内部。即包含点集合中所有点的最小凸多边形Graham凸包算法:首先把图像从RGB转为灰度然后再转为二值图像在通过发现轮廓得到候选点凸包API调用convexHull绘制显示。#include <opencv2/opencv.hpp>#include <iostream>#include...原创 2019-10-23 10:38:28 · 408 阅读 · 0 评论 -
openCV:轮廓发现
轮廓发现:轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法。所以边缘提取的阈值选定会影响最终轮廓发现结果1、输入图像转为灰度图像cvtColor2、使用Canny进行边缘提取,得到二值图像3、使用findContours寻找轮廓4、使用drawContours绘制轮廓#include <opencv2/opencv.hpp>#include <iostre...原创 2019-10-23 10:12:50 · 110 阅读 · 0 评论 -
openCV:模板匹配
模板匹配(template match):模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域。所以模板匹配首先需要一个模板图像T(给定的子图像)另外需要一个待检测的图像-源图像S工作方法,在带检测图像上,从左到右,从上向下计算模板图像与重叠子图像的匹配度,匹配程度越大,两者相同的可能性越大。方法:计算平方不同计算相关性计算相关系数计算归一化平方不同计算归一化相关性计...原创 2019-10-23 09:53:36 · 153 阅读 · 0 评论 -
openCV:直方图反向投影
直方图反向投影:反向投影是反映直方图模型在目标图像中的分布情况简单点说就是用直方图模型去目标图像中寻找是否有相似的对象。通常用HSV色彩空间的HS两个通道直方图模型1.建立直方图模型2.计算待测图像直方图并映射到模型中3.从模型反向计算生成图像加载图片imread将图像从RGB色彩空间转换到HSV色彩空间cvtColor计算直方图和归一化calcHist与normalize...原创 2019-10-22 22:52:02 · 142 阅读 · 0 评论 -
openCV:直方图比较
直方图比较:(衡量图像或者某一块区域的相似性)Correlation 相关性比较(CV_COMP_CORREL)Chi-Square 卡方比较(CV_COMP_CHISQR)Intersection 十字交叉性(CV_COMP_INTERSECT)Bhattacharyya distance 巴氏距离(CV_COMP_BHATTACHARYYA )1、首先把图像从RGB色彩空间转...原创 2019-10-22 22:04:55 · 142 阅读 · 0 评论 -
openCV:三通道直方图计算
#include <iostream> #include<opencv2/opencv.hpp>#include "math.h" using namespace std;using namespace cv;int main(int argc, char** argv){ Mat src, dst;//初始化一个操作对象 src = imread...原创 2019-10-17 22:22:07 · 736 阅读 · 0 评论 -
openCV:直方图均衡化
直方图(Histogram)均衡化直方图:图中每个像素的值所出现的次数,列成直方图,反映图像的灰度情况直方图均衡化(equalizeHist):将分布低的灰度值拉高,提高图像对比度#include <iostream> #include<opencv2/opencv.hpp>#include "math.h" using namespace std;...原创 2019-10-17 21:29:09 · 164 阅读 · 0 评论 -
openCV:像素重映射
#include <iostream> #include<opencv2/opencv.hpp>#include "math.h" using namespace std;using namespace cv;Mat src, dst, map_x,map_y ;//初始化一个操作对象int index = 0;void update_map(void...原创 2019-10-17 20:41:23 · 214 阅读 · 0 评论 -
openCV:霍夫直线变换、霍夫圆检测
霍夫直线变换直线检测(建立在边缘检测已完成的情况下)像素空间坐标到极坐标空间(霍夫空间)的转换原理:每个点坐标对应极坐标里的一条曲线,能够相交于一点的所有曲线对应的像素点即在一条直线上,再由该点反算求得直线、标准的霍夫变换 cv::HoughLines从平面坐标转换到霍夫空间,最终输出的是极坐标空间霍夫变换直线概率 cv::HoughLinesP(建议使用)最终输出的是直线...原创 2019-10-16 22:52:39 · 164 阅读 · 0 评论 -
openCV:Canny算子
Canny边缘检测:1、高斯模糊 - GaussianBlur2、灰度转换 - cvtColor3、计算梯度 – Sobel/Scharr4、非最大信号抑制5、高低阈值输出二值图像Canny(InputArray src, // 8-bit的输入图像OutputArray edges,// 输出边缘图像, 一般都是二值图像,背景是黑色double threshold1,//...原创 2019-10-16 20:24:25 · 461 阅读 · 0 评论 -
openCV:拉普拉斯(Laplance)算子
#include <iostream> #include<opencv2/opencv.hpp>#include "math.h" using namespace std;using namespace cv;int main(int argc, char** argv){ Mat src,dst;//初始化一个操作对象 src = imread(...原创 2019-10-16 15:39:28 · 779 阅读 · 0 评论 -
openCV:Sobel算子
一阶求导算子,计算图像灰度的近似梯度#include <iostream> #include<opencv2/opencv.hpp>#include "math.h" using namespace std;using namespace cv;int main(int argc, char** argv){ Mat src,dst;//初始化...原创 2019-10-16 10:20:16 · 158 阅读 · 0 评论 -
openCV:边界处理
#include <iostream> #include<opencv2/opencv.hpp>#include "math.h" using namespace std;using namespace cv;int main(int argc, char** argv){ Mat src,dst;//初始化一个操作对象 src = imread(...原创 2019-10-15 16:29:31 · 157 阅读 · 0 评论 -
openCV:卷积算子(提取图像边缘)
#include <iostream> #include<opencv2/opencv.hpp>#include "math.h" using namespace std;using namespace cv;int main(int argc, char** argv){ Mat src, dst1,dst2,dst3,dst4,dst5;//初始...原创 2019-10-15 15:15:57 · 472 阅读 · 0 评论 -
openCV:基本阈值操作
基本阈值(threshold)操作:阈值二值化(threshold binary)阈值反二值化(threshold binary Inverted)截断 (truncate)阈值取零 (threshold to zero)阈值反取零 (threshold to zero inverted)#include <iostream> #include&l...原创 2019-10-15 11:14:31 · 153 阅读 · 0 评论 -
openCV:上采样和降采样
#include <iostream> #include<opencv2/opencv.hpp>#include "math.h" using namespace std;using namespace cv;int main(int argc, char** argv){ Mat src, dst,dst1;//初始化一个操作对象 src = i...原创 2019-10-15 10:17:41 · 219 阅读 · 0 评论 -
openCV:提取直线
#include <iostream> #include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(int argc, char** argv){ Mat src, temp1, temp2, dst1, dst2, temp3, dst3;//初始化一个操作对象...原创 2019-10-15 09:35:40 · 599 阅读 · 0 评论 -
openCV:形态学操作(腐蚀、膨胀、开、闭)
腐蚀、膨胀放大噪点或者消去噪点#include <iostream> #include<opencv2/opencv.hpp>using namespace std;using namespace cv;Mat src, dst, dst1;//初始化一个操作对象int element_size = 3;//定义元素大小void Call...原创 2019-10-12 22:39:44 · 130 阅读 · 0 评论 -
openCV:模糊
均值滤波:blur高斯滤波:GaussianBlur中值模糊:medianBlur双边模糊:bilateralFilter均值模糊无法克服边缘像素信息丢失缺陷。原因是均值滤波是基于平均权重高斯模糊部分克服了该缺陷,但是无法完全避免,因为没有考虑像素值的不同中值模糊是去除图像的噪点、小黑点双边模糊 – 是边缘保留的滤波方法,避免了边缘信息丢失,保留了图像轮廓不变#inc...原创 2019-10-10 21:01:42 · 131 阅读 · 0 评论 -
openCV:画图和写文字
#include <iostream> #include<opencv2/opencv.hpp>using namespace std;using namespace cv;Mat BgImage;//初始化一个操作对象const char*drawdemo_win = "画图";void MyLines();void MyRectangle();v...原创 2019-10-10 16:02:21 · 143 阅读 · 0 评论 -
openCV:修改对比度和亮度
//调整图像对比度和亮度#include <iostream> #include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(int argc, char** argv){ Mat src,dst;//初始化一个操作对象 src = imread("C:/Use...原创 2019-10-09 22:49:13 · 143 阅读 · 0 评论 -
openCV:线性混合和相乘混合
#include <iostream> #include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(int argc, char** argv){ Mat src1, src2, dst,dst1;//初始化一个操作对象 src1 = imread("C:/Use...原创 2019-10-09 16:30:43 · 96 阅读 · 0 评论 -
openCV:基础功能
基础的一些功能创建与图像大小相同的图片创建简单的3X3图像创建数组克隆图片输出通道获取像素高和宽获取像素的值掩膜操作提高对比度图像和数组的初始化创建单位矩阵单(3)通道图像灰度、反差转换(~)#include <iostream> #include<opencv2/opencv.hpp>using namespace std;...原创 2019-10-09 16:18:30 · 290 阅读 · 0 评论 -
openCV:环境配置和测试代码
测试配置是否成功#include <iostream> #include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(int argc, char** argv){ Mat src;//初始化一个操作对象 src = imread("C:/Users/J...原创 2019-10-09 16:04:54 · 9185 阅读 · 0 评论