OpenCV学习
针对于OpenCV的学习
以及项目实战
图灵小眼睛
专注深度学习与计算机视觉,包括(Opencv,PCL3D点云数据处理),QT。
展开
-
Opencv——calcHist()函数
在Opencv中,calcHist()函数用于计算一个或者多个阵列的直方图。原型如下:void calcHist(const Mat*images,int nimages,const int*channels,InputArray mask,OutputArray hist,int dims,const int* histSize,const float**ranges,bool uniform=true,bool accumulate=false) 第一个参数,const Mat类型的i原创 2020-10-19 16:02:38 · 1143 阅读 · 1 评论 -
Opencv——图像的矩
矩函数在图像分析中有着广泛的应用,一个从一副数字图形中计算出来的矩集,通常描述了该图像形状的全局特征。一阶矩与形状有关二阶矩显示曲线围绕直线平均值的扩展程度三阶矩关于平均值的对称性的测量由二阶矩和三阶矩可以导出一组共7个不变矩。不变矩是图像的统计特性,满足平移、伸缩、旋转均不变的不变性在Opencv中,如何计算一个图像的矩一般由moments 、 contourArea 、arcLength这三个函数配合求取使用moments计算图像所有的矩(最高到3阶)使用contourAr原创 2020-10-12 11:21:57 · 988 阅读 · 0 评论 -
Opencv学习——霍夫圆变换
HoughCircles()函数:void HoughCircles( InputArray image, OutputArray circles, int method, double dp, double minDist, double param1 = 100, ...原创 2019-08-19 15:20:18 · 320 阅读 · 0 评论 -
Opencv学习——霍夫线变换
在使用霍夫线变换之前,首先要对图像进行边缘检测的处理。主要有三种:HoughLines()1.标注霍夫变换(SHT)2.多尺度霍夫变换(MSHT)HoughLinesP() 执行效率更高3.累计概率霍夫变换(PPHT)void HoughLines( InputArray image, OutputArray lines, ...原创 2019-08-19 13:50:17 · 246 阅读 · 0 评论 -
Opencv+QT——QT界面样式改变学习
以往我都是在个别按钮上单击修改样式表,通过此次案例学到通过在主界面下统一设置样式表。即对主界面空白处单击右键,选择改变样式表:代表窗口内所有的布件QPushButton{#指定布件改变样式表}QPushButton:hover :鼠标悬停...原创 2019-10-14 09:06:29 · 353 阅读 · 0 评论 -
Opencv+QT——第一个小程序学习
主要实现的界面:对于QT中的布局和各个布件的功能就不解释了。在这个小程序中,我学到了几个主要的功能:1.读取文件和储存文件用到了头函数:#include <QFileDialog>#include <QDir>读取文件:void MainWindow::on_inputpushButton_pressed(){ QString filename...原创 2019-10-12 10:34:06 · 339 阅读 · 0 评论 -
Opencv学习——边缘检测(Scharr)
一般称scharr为滤波器,而不是算子。主要配合Sobel算子的运算而存在。void Scharr( InputArray src, OutputArray dst, int ddepth, int dx, int dy, double scale = 1, double delta = 0, ...原创 2019-08-16 09:33:23 · 998 阅读 · 0 评论 -
Opencv学习——边缘检测(Laplacian)
Laplacian算子是n维欧几里德空间中的一个二阶微分算子,定义为梯度grad的散度div。根据图像处理的原理可知,二阶导数可以用来进行检测边缘。让一副图像减去它的Laplacian算子可以增强对比度。void Laplacian( InputArray src, OutputArray dst, int ddepth, i...原创 2019-08-16 09:14:31 · 655 阅读 · 0 评论 -
Opencv学习——边缘检测(sobel算子)
sobel算子Sobel算子是一个主要用于边缘检测的离散微分算子。它结合了高斯平滑和微分求导,用来计算灰度函数的近似梯度。void Sobel( InputArray src, OutputArray dst, int ddepth, int dx, int dy, int ksize = 3, ...原创 2019-08-15 17:00:45 · 564 阅读 · 0 评论 -
Opencv学习——边缘检测 (Canny算子)
一、Canny边缘检测void Canny( InputArray image, OutputArray edges, double threshold1, double threshold2, int apertureSize = 3, bool L2gradient = false );...原创 2019-08-15 11:30:43 · 222 阅读 · 0 评论 -
Opencv学习——阈值操作
一、固定阈值操作:Threshold()函数该函数的典型应用是对灰度图像进行阈值操作得到二值图像。或者是去掉噪声,例如过滤很小或很大像素点的图像点。double threshold( InputArray src, OutputArray dst, double thresh, double maxval, int type ...原创 2019-08-12 14:23:10 · 243 阅读 · 0 评论 -
Opencv学习——图像金字塔与尺寸调整
1、尺寸调整:resize()函数void resize( InputArray src, OutputArray dst, Size dsize, double fx = 0, double fy = 0, int interpolation = INTER_LINEAR );src...原创 2019-08-12 09:50:40 · 284 阅读 · 0 评论 -
Opencv学习——使用鼠标提取不规则区域
C++版本:#include <opencv2/imgproc.hpp>#include <opencv2/imgcodecs.hpp>#include <opencv2/highgui.hpp>#include <iostream>using namespace std;using namespace cv;Mat src, ...原创 2019-08-09 14:04:40 · 1078 阅读 · 0 评论 -
Opencv学习——漫水填充(floodfill)
漫水填充法是一种用特定的颜色填充连通区域。经常被用来标记或分离图像的一部分,以便对其进行进一步处理或分析。原型:int floodFill( InputOutputArray image, Point seedPoint, Scalar newVal, CV_OUT Rect* rect = 0, ...原创 2019-08-02 11:41:17 · 423 阅读 · 0 评论 -
Opencv学习——形态学运算
核心API函数:void morphologyEx( InputArray src, OutputArray dst, int op, InputArray kernel, Point anchor = Point(-1,-1), int iterations = ...原创 2019-08-01 16:52:09 · 505 阅读 · 0 评论 -
Opencv学习——膨胀和腐蚀
一、膨胀dilate函数使用像素邻域内的局部极大运算符来膨胀一张图片。void dilate(InputArray src,OutputArray dst,InputArray kernel,Point anchor=Point(-1,-1),ini iterations=1.int borderType=BORDER_CONSTANT,const Scalar &borderV...原创 2019-07-31 16:55:39 · 271 阅读 · 0 评论 -
Opencv学习——非线性滤波
在很多情况下,使用邻域像素的非线性滤波会得到更好的效果。比如在噪声是散粒噪声而不是高斯噪声1.中值滤波用像素点邻域灰度值的中值来代替该像素点的灰度值。对于斑点噪声和椒盐噪声来说尤其有用。对于一些细节(特别是细、尖顶等)多的图像不太合适。与均值滤波对比:优势:消除噪声能力更胜一筹,无论是消除噪声还是保存边缘方面都不错的选择。劣势:花费的时间是均值滤波的5倍以上。void m...原创 2019-07-31 15:02:30 · 339 阅读 · 0 评论 -
Opencv学习——滤波(方框、均值、高斯)
一、方框滤波(box Filter)#include<opencv2/core/core.hpp>#include<opencv2/highgui/highgui.hpp>#include<opencv2/imgproc/imgproc.hpp>using namespace cv;int main(){ Mat image = imread("...原创 2019-07-30 10:21:37 · 246 阅读 · 0 评论 -
Opencv学习——对XML和YAML文件读写操作
1. XML、YAML文件的打开和关闭XML\YAML文件在OpenCV中的数据结构为FileStorage,打开操作例如:string filename = "I.xml";FileStorage fs(filename, FileStorage::WRITE);\\...fs.open(filename, FileStorage::READ);文件关闭操作会在FileStorag...原创 2019-07-29 15:37:51 · 471 阅读 · 0 评论 -
Opencv学习——图像对比度、亮度值调整
代码示例:#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <iostream>using namespace std;using namespace cv;static void on_ContrastAndBright(int, void*...原创 2019-07-29 14:12:20 · 944 阅读 · 0 评论 -
Opencv学习——访问像素方法
#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <iostream>using namespace std;using namespace cv;//完成减少颜色的工作//用指针访问像素void colorReduce1(Mat &am...原创 2019-07-29 09:51:39 · 283 阅读 · 0 评论 -
Opencv之鼠标响应简介
鼠标回调函数 void setMousecallback(const string& winname, MouseCallback onMouse, void* userdata=0) winname:窗口的名字 onMouse:鼠标响应函数,回调函数。指定窗口里每次鼠标时间发生的时候,被调用的函数指针。 这个函数的原型应该为void on_Mouse(int event...原创 2019-06-03 13:57:11 · 572 阅读 · 0 评论 -
Opencv之寻找轮廓函数findContours
原型:findContours( InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset=Point(...原创 2019-05-30 15:20:35 · 844 阅读 · 0 评论 -
Opencv+QT——opencv在qt中如何配置
在QT中使用第三方库Opencv使用PRI文件首先在你选择的文件中创建一个文本文档,然后将其后缀改成.pri重命名为opencv.pri2.将你的Opencv添加至电脑环境变量3.打开Qt creater 新建Qt Console Application,双击pro文件。在最后一行填上include(F:/OpenCV4.0/opencv.pri),按ctrl+s保存,opencv.p...原创 2019-10-11 15:27:02 · 904 阅读 · 0 评论