![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opencv学习
@ZeKing
这个作者很懒,什么都没留下…
展开
-
opencv学习(一)图片读取与腐蚀
本类opencv系列博客参考《opencv3编程入门》一书,大家可自行购买。读取#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;int main(){ Mat image = imread("D:\\2.jpg"); //存放自己图像的路径 if...原创 2018-03-24 20:21:39 · 258 阅读 · 0 评论 -
opencv学习(十六)非线性滤波//中值滤波Medianblur()//双边滤波biteralfilter()
概念介绍 1,中值滤波函数medianBlur()2,双边滤波函数bilateralFilter() 实例#include<opencv2/opencv.hpp>using namespace std;using namespace cv;//全局变量声明Mat g_srcimage, g_dstimage1, g_dstimage...原创 2018-04-19 10:45:16 · 523 阅读 · 0 评论 -
opencv学习(十八)开/闭运算,形态梯度学morph-grad,顶帽tophat,黑帽blackhat//漫水填充floodfill(),待理解函数(结合鼠标回调函数操作)p234
0,morphologyEX()形态学综合运用函数(开闭运算,形态梯度学,顶帽,黑帽) 1,开运算open2,闭运算close3,形态梯度学运输morph-grad 4,顶帽运算tophat() 5,黑帽运算blackhat() 6,漫水填充floodfill()define ...原创 2018-04-24 10:56:19 · 809 阅读 · 0 评论 -
opencv学习(二十七)①反向投影calcBackProject()→概率匹配问题②通道复制函数mixchannels()→分离合并颜色通道③模板匹配matchTemplate()→应用小球位置匹配
#一,反向投影calcBackProject()#通道复制函数mixchannels()#实例1,反向投影calcBackProject()在calcHist()求出直方图后对其求解//---------------------------------【头文件、命名空间包含部分】----------------------------// 描述:包含程序所使用的头文件和...原创 2018-05-09 11:51:15 · 875 阅读 · 2 评论 -
opencv学习(二十三)寻找并绘制轮廓findCounters()/找出凸包convexHull()
1,查找轮廓findCounters()函数 2,绘制轮廓drawCounters() 实例1查找轮廓#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ //【1】读图 Mat srcimg = imread("D:...原创 2018-05-02 15:57:12 · 4040 阅读 · 0 评论 -
opencv学习(十九)图像金字塔和图像尺寸大小处理resize()//pryUp()//pryDown()//阈值化threshold()//自动阈值化adaptiveThreshold()
0,resize()调整图像大小 1,pryUp()向上采样 2,pryDown()向下采样实例#include<opencv2/opencv.hpp>using namespace cv;using namespace std;Mat g_srcimage, g_dstimage2, g_tmpimage;i...原创 2018-04-25 10:54:12 · 589 阅读 · 0 评论 -
opencv学习(二十八)①cornerHarris②8位convertScaleAbs③Shi_Tomas角点检测goodFeaturesToTrack④亚像素级精度角点检测cornerSubPix
1,Harris角点检测cornerHarris 实例1,Harris角点检测cornerHarris//---------------------------------【头文件、命名空间包含部分】----------------------------// 描述:包含程序所使用的头文件和命名空间//------------------------...原创 2018-05-10 10:26:34 · 583 阅读 · 0 评论 -
opencv学习(20)canny()边缘检测//sobel()//Laplacian()//scharr()
边缘检测一般步骤1,canny()边缘检测 实例#include<opencv2/opencv.hpp>using namespace std;using namespace cv;//全局变量声明Mat src,dst, edge, gray;int g_nsizeValue = 9;int g_nsizeValue2 = ...原创 2018-04-26 10:19:35 · 297 阅读 · 0 评论 -
opencv学习(二十一)霍夫变换HoughLines()//概率累计霍夫变换HoughLinesp//霍夫圆变换HoughCircles(问:如何找同心圆?一定要灰度图后进行霍夫变换吗?)
霍夫变换 #include <opencv2/opencv.hpp>#include <opencv2/imgproc/imgproc.hpp>using namespace cv;using namespace std;//-----------------------------------【main( )函数】----------------...原创 2018-04-27 11:14:29 · 1107 阅读 · 1 评论 -
opencv学习(二十四)圆/矩形/多边形逼近并画轮廓minEnclosingCircle()&Circle()/boundRect[i]&rectangle()/approxPolyDP()&画轮廓
多边形/矩形/圆将轮廓包围1,minEnclosingCircle()&Circle()2,boundRect[i]=boundRect()&rectangle()3,minEnclosingCircle()&Circle() 1,圆/矩形/凸包分别画出轮廓例子#include <opencv2/opencv.hpp&g...原创 2018-05-06 11:52:22 · 2613 阅读 · 0 评论 -
opencv学习(二十二)重映射remap/仿射变换getRotationMatrix2D()//getAffineTransform//wapAffine()直方图均衡化equalizeHist()
重映射remap() 重映射实例(多重映射见书304,其实就是调用子函数的swtich语句,更改map_x,map_y的值来改变重映射形式)#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ Mat srcimg, dstimg; ...原创 2018-04-28 11:35:59 · 1113 阅读 · 0 评论 -
opencv学习(二十五)①计算轮廓的矩moments()&面积contourArea()②分水岭算法函数watershed()!!待深入!!//③图像修补inpaint()
1,计算轮廓的矩moments()&amp;面积contourArea() 实例1,(从而求面积,长度)待,对比参考书中程序发现错误#include&lt;opencv2/opencv.hpp&gt;using namespace cv;using namespace std;#define Windows_name1"【原始图】"#define...原创 2018-05-07 12:06:35 · 953 阅读 · 0 评论 -
opencv学习(二十九)特征检测匹配SURF/BruteForceMatcher/Flann快速匹配//寻找已知物体//ORB特征提取
1, 一般Surf匹配思路步骤2, 基于FLANN的描述符匹配大致就是替代了上步骤中的第三步BruteForceMatcher暴力匹配3, Sift(尺度不变性)暴力匹配Surf相比sift速度更快(3倍) 具体程序只是将SiftFeatureDetector替换SurfFeatureDetector4, 寻找已知物体5, ORB特征提取号称...原创 2018-05-14 10:13:08 · 1835 阅读 · 0 评论 -
opencv学习(十二)多通道图像混合(logo调色)//split()分离通道//merge()合并通道 // 图像处理算子 // 亮度 // 对比度(通过访问每一个像素+算子+滑动条)三问题待解
两问题:(1)addWeighted中蓝色通道权重为0,为啥合并后颜色不变???(2)为什么单独输出红色通道图像是灰色的?(3)while (char(waitKey(1))!=’q’)//输入q未退出??split()分离通道函数和merge()合并通道函数1,split()分离通道函数 2,merge()合并通道函数 ...原创 2018-04-13 15:33:44 · 521 阅读 · 0 评论 -
opencv学习(十七)dilate()膨胀函数//erode()腐蚀函数
dilate()膨胀函数 erode()腐蚀函数 实例#include<opencv2/opencv.hpp>using namespace cv;using namespace std;Mat g_srcimage, g_dstimage;int g_nTrackbarNmuer = 0;//0表示腐蚀,1表示膨胀 in...原创 2018-04-23 11:48:57 · 21277 阅读 · 1 评论 -
opencv学习(七)Mat函数(数据储存结构 /多种初始化创建方式/ 输出矩阵内容),,其他数据结构存放形式
Mat函数数据储存结构Mat定义矩阵数据结构(初始化)有多种方式(opencv3 详见P108),如最常用的(直接用mat()函数)Mat C(2,2,CV_8UC3,SCALAR(0,0,255)); 输出矩阵的命令也有多种语言风格,但一般为(opencv风格)*count<<"C= "<<endl<<" "<<...原创 2018-04-07 11:22:50 · 294 阅读 · 0 评论 -
opencv学习(二)图像模糊及canny边缘检测
1.图像模糊#include <opencv2/opencv.hpp>#include <iostream>ing namespace std;using namespace std;using namespace cv;int main(){ Mat scimage= imread("D:\\2.jpg"); //存放自己图像的路径 ...原创 2018-03-25 10:02:54 · 972 阅读 · 0 评论 -
opecv学习(三)视频读取及摄像头采集图像/边缘检测/模糊去燥
视频读取#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;int main(){ VideoCapture capture("D:\\1.mp4");//读入视频 while (1) { Mat ...原创 2018-03-25 11:08:02 · 684 阅读 · 0 评论 -
opencv学习(六)滑动条/鼠标操作(待回看,待通过编程熟悉)
滑动块createTrackbar()函数滑动块例子见opencv3编程入门P91void ShowHelpText(){ //输出欢迎信息和OpenCV版本 printf("\n\n\t\t\t非常感谢购买《OpenCV3编程入门》一书!\n"); printf("\n\n\t\t\t此为本书OpenCV3版的第17个配套示例程序\n"); pr...原创 2018-03-31 19:54:23 · 245 阅读 · 0 评论 -
opencv学习(八)Point类/ scalar颜色函数/ size函数矩阵类函数/ cvtColor颜色转换/ 常用core模块知识点
Point类 颜色表示saclarsize函数 矩阵类函数 cvtColor颜色转换 其他常用core知识点原创 2018-04-09 12:01:33 · 2003 阅读 · 0 评论 -
opencv学习(九)图像绘制DrawEllipse/ Drawpolygon/ DrawFilledCircle/ DrawFilledCircle/ Rectangle(无法识别标识符,待解
DrawEllipse绘制椭圆函数用法void DrawEllipse(Mat img,double angle){ int thickness=2; int lineType = 8; ellipse(img, Point(window_width / 2, window_width / 2), Size(window_...原创 2018-04-10 12:13:57 · 10202 阅读 · 1 评论 -
opencv学习(十三)离散傅里叶变换dft()//getOptimalDFTSize/copyMakeBorder边界扩展//magnitude()二维幅值/log()/normalize()归一化
离散傅里叶变换 1,dft()函数详解 2,返回dft最优尺寸大小函数getOptimalDFTSize()3,copyMakeBorder()边界扩充函数 4,计算二维矢量幅值函数magnitude()5,求对数函数log()6,矩阵归一化函数normalize() 傅里叶函数应用例子最终效果...原创 2018-04-16 12:05:52 · 2225 阅读 · 5 评论 -
opencv学习(四)头文件申明/main函数格式定义/程序(变量)命名规则/printf函数
1.1头文件命名(已包含下属core等模块) 1.2简单定义main函数 1.3.1命名规则(便于他人读懂)1.3.2常用变量命名方法printf函数 实例:自动输出opencv版本#include <opencv2/opencv.hpp>using namespace cv;void main(){...原创 2018-03-28 14:36:03 · 471 阅读 · 0 评论 -
opencv学习(十四)XML//YAML的读取和写入(同理可用txt,doc替代)//涉及FileStorage()//读写符号//FileNodeIterator()得到节点
xml,yaml介绍如何使用 步骤一,FileStorage()打开(读/写前的准备,定义)步骤二,读写操作函数(符号) 步骤三,vector/maps类型输入输出,FileNodeIterator读取字符串的得到节点步骤四,关闭文件 实例,xml,yaml文件写入#include<opencv2/opencv.hpp>...原创 2018-04-17 11:39:44 · 1507 阅读 · 0 评论 -
opencv学习(十)颜色缩减 // 查表 // 计时 // 访问像素的三个方法(指针/STL迭代器(待详细了解)/动态地址)//历遍图像的14种方法
1,图像储存方式2,颜色缩减 3,查表 look up table 4,计时函数实例 颜色空间缩减如256*256→26*26(访问每个像素)#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace ...原创 2018-04-11 19:54:02 · 214 阅读 · 0 评论 -
opencv学习(五)Mat函数(使用)/inwrite函数/inshow函数/namewindow函数
Mat函数Mat函数用于存放图像及其他数据的数据结构如Mat srcimage=imread("1.jpg")//读入图片存入Mat类型的变量srcimageinwrite函数imshow函数namewindow函数...原创 2018-03-29 14:04:37 · 2741 阅读 · 0 评论 -
opencv学习(十一)// ROI // 图像叠加 // 线性混合 // ROI+线性混合
1,选定感兴趣区域ROI,进行图像叠加 2,线性混合(addWeighted) addWeighted()函数效果图3,指定区域ROI+线性混合效果图(对比1)以上应用实例#include<opencv2/opencv.hpp>using namespace cv;using namespace std;//对全局函数进...原创 2018-04-12 12:48:59 · 347 阅读 · 0 评论 -
opencv学习(十五)方框滤波boxfilter()//均值滤波blur()//高斯滤波GaussianBlur()(可以此回顾滑动条操作)
opencv源码剖析详见参考书160-165,待深入理解常用滤波概念 图像滤波过程 1,方框滤波boxfilter() 2,均值滤波blur() 3,高斯滤波GassianBlur() 综合实例#include<opencv2/opencv.hpp>using nam...原创 2018-04-18 09:47:09 · 2541 阅读 · 0 评论 -
opencv学习(二十六)①控制台颜色设置//②Histgram直方图绘制CalcHist()//③找寻最值函数minMaxLoc()//④直方图比较compareHist()
一,控制台颜色设置二,直方图绘制CalcHist() 找寻最值函数minMaxLoc()实例1,H-S二维直方图绘制//---------------------------------【头文件、命名空间包含部分】----------------------------// 描述:包含程序所使用的头文件和命名空间//----...原创 2018-05-08 11:55:13 · 602 阅读 · 0 评论