- 博客(35)
- 资源 (1)
- 收藏
- 关注

原创 关于多个源文件的编程
具体细节可以些简单的小程序进行测试5.1 结构化程序设计方法->自顶向下,逐步细化概要设计:自然语言描述/流程图-伪码描述->书面程序设计报告->主调模块-被调模块设计过程中接口的设计(模块名称,输入参数,返回值)模块化是团队分工的基础,模块接口是团队协作的基础,模块重用影响大型软件开发的组织与管理方式 ->代码重用,包括跨时间段/跨
2018-11-30 22:43:10
1412
原创 makefile_define补充
对makefile里的define补充说明makefile里可能会用到define来打包一些可能会重用的指令,但是因为makefile里实际上会重用代码的情况并不多…所以,define是一个没怎么设计的挺难用的东西;有一点需要注意的是在define-endef范围内的变量定义和指令的执行,在该范围内,变量定义是无效的,在define段执行时回座位字符串展开;指令的执行则是需要注意一下`cmd`和$(shell cmd)的区别,区别是`cmd`在执行到当前指令的时候不展开,而$(shell cmd)在执行到
2020-05-11 19:20:48
10214
原创 opencv::ml系列,支持向量机基础1.1
线性不可分情况下的支持向量机测试本部分设置了线性不可分的训练集情况,采用不同类型的支持向量机核进行测试,由于opencv3的ml模块支持trainAuto,可以不必预先对核函数参数进行确定,大大提高了可用性。代码如下bool rbfSVMExample() { //支持向量机设置 cv::Ptr<SVM> rbfSVM=SVM::create(); rbfSVM->s...
2019-11-08 20:17:53
312
原创 opencv::ml系列,支持向量机基础1
opencv::ml::svm,线性分类器示例代码如下,该代码采用线性内核,根据示例的四个训练样本集训练分类器,并以此为基础将图像坐标各点作为待测试点bool svmBasicExample() { Ptr<SVM> svm = SVM::create();// svm->setType(SVM::C_SVC);//类型, svm->setKernel(SVM:...
2019-11-07 22:04:03
256
原创 关于opencv的findContours函数的一个问题
opencv findeContours的一个问题实测opencv的faindContours函数会把距离为12个像素一下的两个区域合并成一个区域提取轮廓;如图,最近的轮廓不能进行区分;测试代码为 cv::cvtColor(imgIn, imgIn, CV_BGR2GRAY); cv::imshow("testImg", imgIn); cv::Mat element = cv::g...
2019-09-04 17:32:09
361
原创 C++n次幂和n次方根计算
C++幂次、开方运算基于power函数可以实现,其中计算x的n次方为power(x,n),计算x的n次方根是power(x,1/n);但需要注意,由于1/n默认是整型除法,因此1/n取值为0,需要转换为浮点数进行运算,示例如下://n次幂int main(){ double x; cin>>x; int n; cin>>n; double Npx=powe...
2019-08-02 16:39:35
40815
6
原创 C++运算符重载详解
C++运算符重载详解a. 允许重载的运算符List item重载运算符需要使用运算符函数,其声明格式为operatorOP(argument-list);要求OP必须是C++的有效运算符,且不能是./ .* / :: / ?:等;b. 重载限制(1)重载后的运算符至少有一个参数为自定义类型;(2)使用运算符时不能违反运算符原来的句法规则,不能修改运算符的优先级,不能创建新的运算符;(...
2019-05-29 09:48:56
241
原创 照片背景色一键替换(简陋版)
照片背景色一键替换(简陋版)这个程序是帮舍友替换证件照背景色的时候写的,可以用在图像质量要求不高的场景下,例如上传到招聘网站这种;有一个存在的问题是证件照的背景可能影响头发边缘的颜色,这个程序并没有对这一点作出优化;代码如下:#include<iostream>#include<opencv2/opencv.hpp>using namespace std;us...
2019-05-24 11:11:22
3018
原创 C++(5) 循环和关系表达式
Cpt5 循环loop和关系表达式5.1 for循环(定量循环,while则属于条件循环)a. for是一个C++关键字;基本的循环结构表示为,for(initialization初始化,test-expression循环测试,update-expression循环更新){loop body循环体;}其中循环测试作为进入循环体的条件(入口条件循环),可以用循环体里的break实现;...
2019-05-14 20:10:51
595
原创 C++(4) 基本数据类型和基础的复合类型
Cpt4 复合类型4.1 数组a. 用于相同类型变量的批量管理,定义格式为type Name[size]size要求为编译阶段就可以确定的整型常量;数组元素索引从0开始;理论上下标不能越界,但编译器一般不会进行检查;数组支持{}列表初始化(部分编译器可能要求数组为static类型);通过sizeof查看数组大小是以字节作为单位;(即数组的大小而不是容量)数组只能在定义时进行批量赋值...
2019-05-13 20:04:52
677
原创 C++(3) 基本数据类型相关细节
Cpt3 处理数据a. 本章包括整型和浮点型、其系统限制文件、数字字面值和类型转换等;OOP的本质是根据存储对象的特征设计并扩展自己的数据类型;这些类型的基本组件是C++的内置类型;内置类型包括基本类型和复合类型,基本类型包括不同大小的整数和浮点数,复合类型包括数组、字符串、指针、结构等;3.1 简单变量a. 信息的存储包括类型、取值、位置;C++命名规则:只能包含数字、字符和下划线;...
2019-05-10 22:17:19
293
原创 C++(2)
Cpt2 开始学习C++2.1 进入C++a. C++大小写敏感;C++的常规输出为cout,此外在包含C标准io库stdio.h的基础上可以使用printf()、scanf()等格式化C输入输出;cout也支持格式化,但是其格式化较为复杂;常规的c++文件成分包括:注释;预处理器编译指令#include;编译指令using namespace;主体函数main或其他函数;函数体{};结束...
2019-05-10 21:57:43
298
转载 C++入门笔记
C++入门笔记Cpt1 预备知识补充:C++类库介绍再次体现了C++保持核心语言的效率同时大力发展应用库的发展趋势,在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非...
2019-05-10 21:08:35
316
原创 第六章 高级特征提取:可变形形状分析(2)形状骨架化
第六章 高级特征提取:可变形形状分析(2),形状骨架化6.4 形状骨架化6.4.1 距离变换a. 形状骨架指形状的中心轴,即与形状边界等距的轴,可以通过距离变换确定;利用这种方式可以得到一种表达,具有相同拓扑结构、相同尺寸、相同方向,但是包含的是形状的本质;直观上距离变换可以通过连续腐蚀实现,得到一个以像素腐蚀次数为标记的灰度图;噪声对此类基于形态学的操作有一定影响,表明目标中的微小变化所...
2019-04-18 11:53:04
798
翻译 第六章 高级特征提取:可变形形状分析(1),可变形模板、蛇模型
第六章 高级特征提取:可变形形状分析,(1)可变形模板、蛇模型6.1 概述a. 对于无法建立广义霍夫变换模板、或模板参数存在波动的情况,需要利用弹性形状理论提出目标解决方案;6.2 可变形形状分析6.2.1 可变形模板a. Exp,通过抛物线组合近似眼部模型,如果将两种形状组合在一起,改变其大小和朝向,同时保留其空间关系,那么可以得到一个可变形模板;例如眼部可以表述为上下抛物线和中心圆...
2019-04-17 17:21:30
1967
原创 第五章 形状匹配的特征提取(2)霍夫变换,线变换、圆变换、椭圆检测等及简化
第五章 形状匹配的特征提取(2)霍夫变换,线变换、圆变换、椭圆变换、参数空间分解5.5 霍夫变换5.5.1 概述a. 霍夫变换是一种在图像中定位基础形状元素的技术,例如提取直线、矩形、椭圆等;霍夫变换的优势是对基本元素的查找可以达到接近模板匹配的结果,但是速度更快(采用了更简洁的描述方式);这是一种基于evidenct-gathering(类似投票制)的方法,基于对模板匹配过程的重定义;H...
2019-04-16 18:48:36
4691
1
原创 第五章 形状匹配的特征提取(1)模板匹配、低级特征提取
第五章 形状匹配的特征提取(1)简单阈值处理方法、模板匹配5.1 概述a. 形状提取比检测更为复杂,因为形状提取意味着对形状进行可靠的描述,而形状检测只需要证明在图像中的存在性即可;5.2 阈值处理和背景减法a. 阈值处理是计算成本相对较低的一种背景抑制方式,在图像亮度存在线性变化的情况下可以通过直方图均衡处理得到稳定不变的图像;考虑到直方图方法对噪声的敏感性,采用直方图正规化降低噪声的...
2019-04-15 19:30:26
3138
原创 第四章 低级特征提取(5)SIFT特征、SURF、显著性算子、图像运动的描述:光流
第四章 低级特征提取(5)SIFT特征、显著性算子、图像运动的描述4.4.2 现代方法:区域/图像块分析a. 局部特征提取的现代方法旨在放开早期的局部特征提取所设的一些限制,以便于拜托尺度差异对特征提取和描述带来的影响,通过利用多点排列的描述对目标进行描述和识别;该类方法一般依赖于尺度空间,兴趣特征一般为仍然存留在所选尺度上的特征;4.4.2.1 尺度不变特征变换,SIFTa. SIFT的...
2019-04-14 21:37:24
1717
原创 第四章 低级特征提取(4)定位特征提取:角点提取
第四章 低级特征提取(4)定位特征提取:角点提取4.4 定位特征提取4.4.1 检测图像曲率(即角点提取)a. 在边缘对图像进行特征化的基础上,曲率进一对边缘进行特征化,通过角点对边缘曲线进行表征;b. 曲率通常利用平面曲线的参数形式定义,参数化的轮廓表示为,其中Ux=[1, 0],Uy=[0, 1],即将连续曲线描述为位置矢量组,t表示任意参数如时间;位置矢量的变化采用v(t)的正...
2019-04-13 21:20:23
2065
原创 第四章低级特征提取(3)基于相位一致性的边缘检测
第四章低级特征提取(2)基于相位一致性的边缘检测4.3 相位一致性a. 相位一致性方法是一个特征检测算子,主要优点为:(1)可以检测大范围的特征;(2)对局部光照具有不变性;综合来看即一致性检测具有局部对比度不变性;正如其名,相位一致性是基于相位考虑的频域处理,一般认为,对于边缘信号对应的峰值,峰值是各个组成频率在同一时间达到峰值而产生的;这表明为了找到我们想要的特征,可以确定一些同时...
2019-04-12 18:53:30
5572
原创 第四章低级特征提取(2)二阶边缘检测算子Laplacian、Marr-Hildreth等
第四章低级特征提取(2)二阶边缘检测算子Laplacian、Marr-Hildreth等4.2.2 二阶边缘检测算子4.2.2.1 动机:利用二阶微分零点为一阶微分的区域极值;a. 即计算二阶导数的过零点;4.2.2.2 基础算子: Laplacian算子a. Laplacian算子使用两个相邻一阶微分的差值近似实现二阶微分;即有,即有,则Laplacian模板,由于引入了...
2019-04-11 22:14:16
1465
原创 第四章低级特征提取(1)一阶边缘检测算子Sobel、Prewitt、Canny等
第四章 低级特征提取 一阶边缘检测算子Sobel、Prewitt、Canny等4.1 概述a. 我们定义低层次特征为基本特征,不需要任何形状信息就可以从图像中自动提取;局部特征提取:边缘检测;角点检测(线条高曲率点);局部兴趣图像块;运动特征,常用方法为光流;4.2 边缘检测4.2.1 一阶边缘检测算子4.2.1.1 基本算子a. 基于边缘检测的分析不易受整体光照强度变化的影响,因...
2019-04-10 22:27:27
1263
原创 《计算机视觉特征提取与图像处理(第三版)》笔记/ 第三章 基本图像处理运算(2)形态学操作
第三章 基本图像处理运算(2) 形态学操作3.6 数学形态学a. 形态学关注的是形状,将图像和形状看做是点集,利用数学形态学根据形状处理图像,通过这种方式,形态学算子定义的是局部变换,改变那些被看做是集合的像素值基本原理是击中或未击中变换(点操作);击中-未击中变换定义为,其中X表示目标集合,B表示结构元素,x为X中的元素,XC表示X的补集;形态学操作由二值图像拓展到灰度数据,通过类...
2019-04-10 10:52:53
791
原创 《计算机视觉特征提取与图像处理(第三版)》笔记/ 第三章 基本图像处理运算
第三章 基本图像处理运算3.2 直方图a. 亮度直方图表示每个亮度级在图像中的占有率;一般图像对比度是通过亮度级范围来度量的;直方图拉伸可以增强图像对比度;通过和理想直方图进行对比,可以进行噪声处理;3.3 点算子3.3.1 基本点运算a. 点运算指,以单个像素作为输入,并输出单个像素的运算;简单的线性点运算(如复制、亮度翻转、亮度相加、亮度的乘法变化等)通常可以表达为线性方程的形式...
2019-04-09 21:35:11
1911
原创 第二章 图像、采样和频域处理 (2)
第二章 图像、采样和频域处理 (2)2.4 采样标准a. 采样标准对采样频率进行规定,在物理上这些值是A/D转换器对模拟信号进行采样的输出;b. 示例采样函数:峰值间隔为∆t 的时域等间隔脉冲;采样过程的频域模拟是将信号频谱与采样函数的频谱进行卷积运算,即将某一个频谱沿水平轴反转,然后滑过另一个频谱;以峰值谱为例,输出为一个原信号频谱以1/∆t为周期的重复频谱;显然过大的采样间隔会导致...
2019-04-08 21:07:25
2278
原创 第二章 图像、采样和频域处理(1)
《计算机视觉特征提取与图像处理(第三版)》笔记/第二章(1)Cpt2 图像、采样和频域处理2.1 概述a. 频域处理看可以适当的提高处理速度;2.2 图像形成a. 计算机图像表现为二维的m-bit矩阵,m的理想值实际上与相机的信噪比密切相关,模拟摄像机信噪比约45dB,每位6dB,可以用8位覆盖有效范围,且便于以byte的形式存储;b. 在任何颜色模型中,像素的颜色可以用两种方式来确定...
2019-04-07 21:09:29
611
原创 《计算机视觉特征提取与图像处理(第三版)》笔记/第一章(1)计算机视觉基础
《计算机视觉特征提取与图像处理(第三版)》第一章(1)Cpt1 绪论(人类视觉系统/计算机视觉系统/数学系统/参考文献)1.2 人类视觉和计算机视觉a. 图像处理领域常用图片/视频:openCV自带的图片库/视频库,例如Lena;b. 广义图像采集:摄像机图像/MRI(软组织图像/computerized tomography计算断层摄影术/infrared sensor或syntheti...
2019-04-05 21:58:05
2981
原创 图像中最大四边形的提取与矩形校正(C++,openCV3.4)
这个函数作用是从输入的图像中提取检测到的最大矩形区域,但是对矩形的畸变程度鲁棒性还有待改进,否则矩形区域的提取可能出现问题;图像输入输出示例:头文件:#include&amp;lt;opencv2/opencv.hpp&amp;gt;using namespace std;using namespace cv;extern Mat extractedRect;int RectSegmentati...
2019-03-07 11:04:36
4835
3
原创 const int* a和int* const a
const int* a中的const修饰int,表示a是一个指向const int类型的指针,即不能通过a指针对其指向的对象进行修改,但a本身不具有const属性;int* const a中的const修饰a,表示a指向int类型,但a本身是不能修改的,即a指向固定的地址;...
2019-03-01 10:48:31
1038
原创 leetcode入门级:1.删除数组重复项
class Solution {public: int removeDuplicates(vector<int>& nums) { int prev = 0; for(auto& n : nums) { /* prev - 1是上一个找到的元素,如果和它相等,就丢掉 */ ...
2019-02-14 16:41:30
120
转载 openCV 分水岭
#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;#define WINDOW_NAME1 "srcImg"#define WINDOW_NAME2 "dstImg"static void on_Mouse(int event, int x,...
2018-10-31 17:57:07
325
原创 ROI工具应用篇:图像分块输出
#ROI工具应用篇:图像分块输出OpenCVROI应用,作用是将输入图像进行分块输出;要求图片格式一致(该代码使用jpg),文件名为数字。。。。哈哈哈哈勉强能用,ROI越界的问题还是有点麻烦,只能用边界填充的方式暂时解决;各位加油;#include<opencv2/opencv.hpp>#include<iostream>using namespace std;...
2018-10-15 21:55:07
1505
原创 增加拖动条的椒盐噪声生成器源码
#椒盐噪声生成器源码//=====================这个函数作用是对输入图像输出椒盐噪声=====================//输入src源图像,输入格式图像名+图像格式,要求图像和程序处于相同文件夹//调整椒盐噪声参数,输入s进行保存,输入q退出;#include&amp;amp;amp;lt;opencv2/opencv.hpp&amp;amp;amp;gt;#include&amp;amp;amp;lt;iostr
2018-10-15 19:03:50
181
原创 cvtColor()实际操作
cvtColor函数的实际操作cvtColor()函数说明代码示例cvtColor()函数说明cvtColor()函数用于实现图像的色彩空间转换,一般包括四个参数,cvtColor(src,dst,type,channels); 即源图像,目标图像,转换方式,目标图像通道数,有时候在应用时会选择将dst设置和src相同,即实现原图的转换,需要注意在这个过程中,并不是在src的数据矩阵中直...
2018-09-26 17:17:36
14166
转载 OpenCV Mat对象的显式创建
OpenCV Mat对象的显式创建OpenCV Mat对象的显式创建(基于OpenCV3.4.3和VS2017)1.使用Mat()构造函数:2.C/C++构造函数初始化3.为已存在的IPlImage指针创建信息头4.利用Create()函数5. 采用Matlab式的初始化方式6. copyTo/clone,生成新的矩阵参考浅墨的OpenCV3编程入门;OpenCV Mat对象的显式创建(基于...
2018-09-21 11:33:19
332
A Computational Approach to Edge Detection
2018-10-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人