自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (2)
  • 收藏
  • 关注

原创 OpenCV(c++)多项式方程求解(PolySolver)

求多项式方程的实根或复根。C++: double solvePoly( InputArray coeffs, OutputArray roots, int maxIters=300 )参数说明:coeffs - 多项式系数数组, coeffs 是从常数项到最高阶。roots - 输出(复数)根数组。是一个二维矩阵,第一维代表实部,第二维代表虚部。maxIters -...

2019-11-29 17:22:32 2562

原创 C++类的构造函数后面加一个冒号的含义

最近在看侯捷老师讲解的C++知识,他讲到在构造函数加一个冒号初始化值的方法,会使代码更大气,在此记录一下使用方法构造函数冒号后的初始化class complex{public: complex(double r = 0, double i = 0) : re (r), im (i) // 初始化值 {} ...private: double re, im;};相当...

2019-11-29 17:11:18 2434

原创 解决VS 2015运行C++程序时控制台输出窗口一闪而过的问题

最近用VS2015写C++代码,运行代码时,控制台输出窗口总是一闪而过,无法看到自己的输出结果解决办法首先,在你的C++项目处,点右键进入:右键“Project1” -> 属性 -> 连接器 -> 系统 -> 子系统然后 选择 “控制台 (/SUBSYSTEM:CONSOLE)” 最后,点击“确定”或“应用”来保存修改。运行程序发现闪...

2019-11-29 12:00:57 1375 2

原创 OpenCV(C++)的曲线拟合polyfit

曲线拟合表达式:f(x)=a0+a1∗x+a2∗x2+a3∗x3+...+an∗xn=[a0,a1,a2,...,an][1,x1,x12,...,x1n]Tf(x) = a_0 + a_1*x + a_2*x^2 + a_3*x^3 + ... + a_n*x^n = [a_0, a_1, a_2 ,..., a_n][1, x_1, x_1^2,..., x_1^n]^Tf(x)=a0​+...

2019-11-25 10:46:09 7784

原创 OpenCV (C++)三次样条插值及代码实现

样条插值拟合在MATLAB有现成的函数可以用,在opencv3中并未看到对应或可替代的函数,所以按照三次样条插值原理自己用opencv(C++)语言上写了一个对应的函数,亲测可用,如果有什么问题或是优化方法,请指正。原理部分参考这里三次样条曲线原理 内容文字 内容文字...

2019-11-23 15:35:02 4563 7

原创 vector向量容器中使用insert()插入数值的方法

vector向量容器中使用 insert() 方法可以在vector对象的任意位置前插入一个新的元素insert() 方法要求插入的位置,是 元素迭代器 的位置,而不是元素的下标。#include<vector> #include<iostream> using namespace std; int main() { vecto...

2019-11-21 09:56:39 6286

原创 OpenCV(C++)如何删除vector中的元素

让it指向下一个元素erase函数的返回值是指向当前被删除元素的下一个元素的迭代器。我们把这个返回值赋值给it继续遍历。代码如下:for (vector<Point>::iterator it = data.begin(); it != data.end(); ){ if ((*it).y == num) { it = data.erase(it); } else ...

2019-11-15 09:09:21 1032

原创 使用OpenCV(C ++)填充图像中的孔

在本教程中,我们将学习如何填充二进制图像中的孔。考虑一下图1左侧的图像。假设我们想找到一个二进制蒙版,它将硬币与背景分离开,如右图所示。在本教程中,包含硬币的圆形区域也称为前景。 请注意,硬币的边界很暗,与白色背景不同。因此,我们使用简单的图像阈值处理将边界与背景分开。换句话说,我们说强度高于特定值(阈值)的像素是背景,其余像素是前景。上示中间图像显示此阈值图像(黑色代表背景,白色代表...

2019-11-13 10:07:24 1362 2

原创 OpenCV颜色空间转换cvtColor()函数用法总结

**cvtColor()**用于将图像从一个颜色空间转换到另一个颜色空间的转换(目前常见的颜色空间均支持),并且在转换的过程中能够保证数据的类型不变,即转换后的图像的数据类型和位深与源图像一致。cvtColor()函数详解C++: void cvtColor( InputArray src, OutputArray dst, int code, int dstCn=0 )...

2019-11-10 10:31:45 2298

原创 OpenCV使用findContours()查找轮廓

C++: void findContours( InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset=Point())或者(参数hierarchy是可选项)C++: void findContour...

2019-11-10 09:55:42 631

原创 OpenCV中对Mat矩阵加、减、乘、除、转置等操作的总结

1、矩阵乘1) 矩阵乘A*B是以数学运算中矩阵相乘的方式实现的,即Mat矩阵A和B被当做纯粹的矩阵做乘法运算,这就要求A的列数等于B的行数时,才能定义两个矩阵相乘。如A是m×n矩阵,B是n×p矩阵,它们的乘积AB是一个m×p矩阵。例如:Mat A=Mat::ones(2,3,CV_32FC1);Mat B=Mat::ones(3,2,CV_32FC1);...AB=A*B;2) ...

2019-11-08 22:50:42 35008 2

原创 OpenCV的Range类

我们在使用OpenCV库进行图像操作时,常常需要截取ROI区域(兴趣区).在MATLAB中我们一般只需要索引行列坐标即可,如:image(10:20, 20:30)在OpenCV时我们就需要加上Range在索引行列坐标1.Range是OpenCV中新加入的一个类,该类有两个关键的变量start和end;2.Range对象可以用来表示矩阵的多个连续的行或者多个连续的列3.Range表示范...

2019-11-07 19:53:24 2385 4

原创 OpenCV画圆/点函数circle

画一个圆C++: void circle( InputOutputArray img, Point center, int radius, const Scalar& color, int thickness=1, int lineType=LINE_8, int shift=0 )参数说明img - 画圆的图像center - 圆心radius ...

2019-11-07 10:23:45 2744

原创 在OpenCV中创建Mat对象

下面的两种方法是我自己比较常用的两种方法采用MATLAB方式初始化矩阵Mat E = Mat::eye(4, 4, CV_64F);Mat O = Mat::ones(2, 2, cv_32F);Mat Z = Mat::zeros(3, 3, CV_8UC1);CV_8UC3使用Mat()构造矩阵Mat M(2, 2, CV_8UC3, Scalar(0, 0, 255));...

2019-11-07 10:08:40 158

原创 OpenCV 矩阵数据类型转换convertTo

将(可选缩放)数组转换为另一种数据类型。C++: void Mat::convertTo( OutputArray m, int rtype, double alpha=1, double beta=0 ) const参数说明:m - 目标矩阵。如果m在运算前没有合适的尺寸或类型,将被重新分配。rtype – 目标矩阵的类型。alpha - 尺度变换因子(可选)。...

2019-11-06 10:49:28 779

原创 Opencv的reshape函数

reshape函数既可以改变矩阵的通道数,又可以对矩阵元素进行序列化,而且不需要复制数据。C++: Mat Mat::reshape( int cn, int rows=0) const参数虽然比较少,但是设置时需要小心参数说明:cn - 表示通道数(channels), 如果设为0,则表示保持通道数不变,否则则变为设置的通道数。rows - 表示矩阵行数。 如果设为0,则...

2019-11-06 10:01:46 1002

原创 OpenCV中用RNG产生随机数(C++)

产生随机数是编程中经常要用到的操作。C和C++中产生随机数的方法如rand()、 srand() 等在OpenCV中仍可以用。此外,OpenCV还特地编写了C++的随机数类RNG,C的随机数类CvRNG,还有一些相关的函数,使用起来更加方便。说明1、关键字前带cv的都是C里的写法,不带cv的是C++里的写法,比如CvRNG和RNG,其本质都是一样的。2、计算机产生的随机数都是伪随机数,是根...

2019-11-05 20:05:24 1651

马尔科夫随机场的分割.rar

在kmeans基础上实现的一种基于统计的图像分割算法,分割的效果好。马尔科夫模型是一组事件的集合。在这个集合中,事件是逐个发生,并且下一刻事件的发生只由当前发生的事件决定,而与再之前的状态没有关系。

2020-05-31

Template Matching.rar

python-OpenCV实现边缘模板匹配算法。介绍一种新的模板匹配算法,主要是基于图像边缘梯度,它对图像光照与像素迁移都有很强的抗干扰能力

2020-05-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除