20个算法毕设项目分享(一)

# 1 基于opencv的图像增强算法系统

直方图均衡化是通过调整图像的灰阶分布,使得在0~255灰阶上的分布更加均衡,提高了图像的对比度,达到改善图像主观视觉效果的目的。对比度较低的图像适合使用直方图均衡化方法来增强图像细节。

使用中心为5的8邻域拉普拉斯算子与图像卷积可以达到锐化增强图像的目的

对数变换可以将图像的低灰度值部分扩展,显示出低灰度部分更多的细节,将其高灰度值部分压缩,减少高灰度值部分的细节,从而达到强调图像低灰度部分的目的。

伽马变换主要用于图像的校正,将灰度过高或者灰度过低的图片进行修正,增强对比度。

在这里插入图片描述
在这里插入图片描述

2 基于Astart的寻路算法设计与实现

A*算法通过下面这个函数来计算每个节点的优先级。

f ( n ) = g ( n ) + h ( n ) f(n) = g(n)+h(n) f(n)=g(n)+h(n)

其中:

  • f ( n ) f(n) f(n) 是 节点n的综合优先级 。当我们选择下一个要遍历的节点时,我们总会选取综合优先级最高(值最小)的节点。
  • g ( n ) g(n) g(n) 是 节点n距离起点的代价
  • h ( n ) h(n) h(n) 是 节点n距离终点的预计代价 ,这也就是A*算法的启发函数。

A* 算法在运算过程中,每次从优先队列中选取 f ( n ) f(n) f(n) 值最小(优先级最高)的节点作为下一个待遍历的节点。 另外,A*算法使用两个集合来表示 待遍历的节点已经遍历过的节点 ,这通常称之为open_set和close_set。

学长设计了一个走迷宫小游戏,迷宫的遮挡地形可以根据根据鼠标的拖动进行绘画,我们将AStart算法应用到像素游戏中,效果如下

在这里插入图片描述

3 基于Kmeans的图像分割算法软件设计

K-Means算法的思想很简单,对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。

Kmeans图像分割算法流程:

1、加载图像,获取图像的所有像素点并将其转换为样本数据。
2、开始迭代
a)、初始化簇心坐标。
a)、更新簇心坐标,遍历样本数据中的数据点并计算数据点与所有簇心的距离。对于某数据点计算得到的与所有簇类的欧氏距离中,取欧氏距离最小所对应的簇类作为该数据点对应的类。
c)、计算更新后的簇心坐标与更新前的簇心坐标的均方误差。若均方误差仍大于某阈值,则重复b),反之结束迭代。

在这里插入图片描述

4 基于opencv的银行卡识别

银行卡卡号识别技术原理是先对银行卡图像定位,保障获取图像绝对位置后,对图像进行字符分割,然后将分割完成的信息与模型进行比较,从而匹配出与其最相似的数字。
在这里插入图片描述

5 基于python的答题卡识别评分系统

答题卡识别步骤:
1: 检测到图片中的答题卡
2: 应用透视变换来提取图中的答题卡(以自上向下的鸟瞰视图)
3: 从透视变换后的答题卡中提取 the set of 气泡/圆点 (答案选项)
4: 将题目/气泡排序成行
5: 判断每行中被标记/涂的答案
6: 在我们的答案字典中查找正确的答案来判断答题是否正确
7: 为其它题目重复上述操作

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值