![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
初学者C++
爱吃酸奶呀
这个作者很懒,什么都没留下…
展开
-
数字图像处理合集一opencv环境配置及入门级练手数字图像处理
这次出一个数字图像处理合集,用的是opencv3.4.6+vs2017版本。本合集逐渐深入,分为环境配置及入门、几何变换、图像增强、图像分割、形态学处理、图像特征和车流量统计部分。本合集适合数字图像处理的初学者。1、配置图像处理编程环境步骤:将opencv3.4.6解压到安装目录之后,打开VS2017,新建Windows桌面控制台程序,在属性管理器上点出Microsoft.Cpp.x64.user,点开属性一栏,在VC++目录下修改包含目录及库目录的内容。结果如图一所示。在链接器的附加依赖项添加原创 2020-11-20 14:00:28 · 389 阅读 · 0 评论 -
数字图像处理合集——几何变换
完成图像旋转、平移、比例缩放1、图像平移;图像平移先定义xOffset和yOffset的大小,即水平方向和垂直方向的平移单位。创建全黑目标图像,使平移后的图像和原图像一样大。使用两个循环对水平方向和垂直方向进行平移在其中设置溢出保护。代码示例如图一所示。分别在水平方向和垂直方向平移20个单位,实验结果如图二所示。2、图像旋转;使用getRotationMatrix2D、warpAffine函数,求得旋转矩阵,再进而求得旋转图像,将多余的边框剪切掉。代码示例如图三所示。对图像进行30°的旋转原创 2020-11-20 14:18:55 · 553 阅读 · 0 评论 -
数字图像处理合集——图像增强
实现:1.掌握线性/非线性灰度变换,理解不同的灰度变换所应用的场景及不同的处理效果,掌握线性/非线性灰度变换的数学原理。2. 掌握直方图均衡化算法,理解直方图均衡化算法是一种增加图像灰度动态范围,掌握算法的数学原理。3. 掌握邻域/中值平滑算法,理解模板卷积概念,理解邻域/中值平滑图像处理的效果及其对于椒盐噪声和高斯噪声不同的处理结果。1、线性变换压缩图像,拉伸图像低灰度区,压缩图像高亮度区的代码。线性变换主要使用f(x)=a*x+b来实现,不同的a和b有不同的处理效果。其中参数a为线性函数的斜率原创 2020-11-20 14:27:18 · 1404 阅读 · 0 评论 -
数字图像处理合集——图像分割
实现:1、掌握大津阈值分割算法,理解大津阈值分割数学原理是使得分割后各个像素类的类间方差最大,并能编写程序实现。2、掌握微分算子边缘检测算法,理解一阶和二阶微分算子的数学原理和在图像中代表的物理意义,并能够程序实现。3、掌握霍夫变换算法,理解霍夫直线检测数学原理的推导过程及其图像处理的效果,并能够程序实现。1、大津阈值分割算法关键代码及注释。使用函数计算最佳阈值,在主函数内带入到接口函数显示图像。在自定义函数内通过计算类间方差获得最佳阈值,在0~255内进行循环计算。自定义函数如下所示。int原创 2020-11-20 14:42:45 · 1212 阅读 · 0 评论 -
数字图像处理合集——图像特征与理解
实现:1、掌握图像的基本特征算法,理解图像中目标的几何特征、形状特征的物理与几何意义,并能够将特征的数学语言转换成程序描述。2、掌握图像的角点特征算法,理解Moravec角点的物理与几何意义,并能够将角点的数学语言转换成程序描述。3、掌握图像的纹理分析算法,理解对比度、熵、角二阶矩等纹理测度的几何意义,并能够将纹理特征描述的数学语言转换成程序描述。1、掌握图像的基本特征算法,理解图像中目标的几何特征、形状特征的物理与几何意义。图像的基本特征提取对研究工作有着重要的帮助,而图像的几何特征和形状特征更原创 2020-11-20 15:13:15 · 1716 阅读 · 0 评论 -
数字图像处理合集——形态学处理
实现:1.熟悉二值形态学膨胀/腐蚀/开/闭运算,理解二值形态学算法的几何意义和数学原理。2.掌握二值形态学骨架提取算法原理及其实现。3.掌握形态学方法检测角点算法原理及实现。1.编写二值形态学膨胀/腐蚀/开/闭运算算法程序,并调试实现。二值形态学膨胀/腐蚀/开/闭运算均可通过opencv的接口函数实现,膨胀的接口函数为:dilate(image, out, element);腐蚀的接口函数为:erode(image, out, element);开运算的接口函数为:morphologyEx(thr原创 2020-11-20 15:05:55 · 1048 阅读 · 0 评论 -
数字图像处理合集终章——车流量统计(后附源码)
题目要求:包括1)基于高斯混合背景建模的运动目标提取;2)基于矩形度/圆形度/面积的车辆目标判别;3)区域生长法获取完整的车辆目标;4)统计不同方向的车流量(单位是辆/分钟),对于白天场景下车流量能够有效的统计。题目分析:首先明白混合高斯背景建模,其基本思想为:定义每个像素点的分布模型为由多个单高斯模型组成的集合,根据每一个新的像素值更新模型参数,按照一定的准则判断哪些像素点为背景点,哪些为前景点,从而实现对运动目标的检测。使用混合高斯背景建模提取出前景之后,对前景进行图像预处理,进行滤波、膨胀、腐原创 2020-11-20 15:27:37 · 5511 阅读 · 17 评论 -
基于MFC的餐饮管理系统(C++实现 后附源码)
餐饮管理系统实现功能:①利用MFC的向导,创建基于对话框的应用程序,添加按钮、编辑框等控件;②用文件保存餐桌信息,包括餐桌编号、座位数、状态(0:空闲;1:已订;2:就餐);可以按座位数和餐桌状态查询;③用文件管理餐厅业务信息,包括:顾客姓名、订座时间、就餐时间、金额、餐桌编号、联系电话、用餐人数、备注;④点击“订座”按钮,录入订座信息顾客姓名、订座时间、就餐时间、餐桌编号、联系电话、用餐人数、备注等,注意订座成功后修改餐桌信息文件中的餐桌状态,以保证餐桌编号不能重复预订或就餐;⑤可以按顾客姓名、原创 2020-10-14 19:04:29 · 4884 阅读 · 0 评论 -
基于TCP的计算机通信实验验证(MFC完成,后附源码)
基于TCP(面向连接)的socket编程,分为客户端和服务器端。客户端的流程如下:(1)创建套接字(socket)(2)向服务器发出连接请求(connect)(3)和服务器端进行通信(send/recv)(4)关闭套接字服务器端的流程如下:(1)创建套接字(socket)(2)将套接字绑定到一个本地地址和端口上(bind)(3)将套接字设为监听模式,准备接收客户端请求(listen)(4)等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept)(原创 2020-10-07 16:13:03 · 306 阅读 · 1 评论 -
C++编程实例之翻转01串
问题描述:给你一个长度为n的01串。现在想让你找出最长的01交替子串(子串可以不连续)比如:1010,0101是01交替的串,1101则不是。现在你可以把某一个连续的区间进行翻转,即0变1,1变0。问修改之后的最大01交替子串的长度是多少问题分析:看到题目后,不必使用暴力方法解决,可以从数学的角度出发,找规律。如果长度为n的原串中只有1个00(或11)出现,翻转后可以得到最长n位的交替序列;如果有多个00(或11)出现,统计相邻位不同的数count,可以得到最长count+2位的交替序列。也就是需要遍原创 2020-09-24 10:44:04 · 2834 阅读 · 0 评论 -
c++编程实例之河边搬石头
问题描述:沙滩按照线型摆放着n个大小不一的球形石头,已知第i个石头的半径为ri,且不存在两个石头有相同的半径。为了使石头的摆放更加美观,现要求摆放的石头的半径从左往右依次递增。因此,需要对一些石头进行移动,每次操作可以选择一个石头,并把它放在剩下n−1个石头在最左边或最右边。问最少需要操作多少次才能将这n个石头的半径变成升序?问题解析:这是一个排序问题,且每一次操作只能将当前石头放到最左端或者最右端,使用c++的vector存储序列,保持原序列中最大递增1的子序列不变,移动其他石头。那么只需求出最大递原创 2020-09-24 10:40:39 · 541 阅读 · 0 评论 -
基于C++的学生信息管理系统的实现
在完成一学期的C++语言学习之后,写一个学生信息管理系统来丰富自己的实战经验。课设内容的要求有主菜单模块、输入模块、查询模块、更新模块、排序模块、统计模块和输出模块,并且通过主菜单模块调用各个子模块。主菜单模块须有循环嵌套语句实现用户不断对功能进行选择,并实现首次使用系统有录入信息的功能。输入模块需要通过键盘输入信息并能输出到文件,说明程序必须包括文件操作流。查询模块可分为两个子模块,分别通过姓名查询和学号查询并显示相应查询结果。更新模块不仅更新还要确认是否保存到文件,要有if语句的运用。这样就可原创 2020-07-03 09:37:01 · 7698 阅读 · 3 评论