C#实现判断一张图是不是图片的局部

¥20.00

现有两张图

image.png     image.png

  图1                              图2


用C#实现判断图1是否是图2中的局部,并给出局部位置坐标

Yanne T2 发布于2年前

最佳解决方案

你这个需求比较复杂,如果要实现精度很高的demo需要不断的调试和优化算法,比较费时间。 可以分享下大概思路:主要是找3/4/5个相同的坐标点位。


首先分别计算图1和图2每一个像素的灰度值,经过计算后可以理解平面图变成了以灰度值为基准的3D高度图,类似下面那样:


图片.png


以图2的左下角为原点,宽度为X轴,高度为Y给图2上每一个像素值建立坐标系

图片.png


假如图1宽度100px高度50px,图1左上为A点 右上为B点 左下为C点 右下为D点。以图1左上角A的灰度值为标准,找到所有灰度值相同的点,形成集合AA。遍历这个集合,每轮询一个点,以此点坐标为基础查找图二上几个对应B、C、D的点位的灰度值。比如AA[0]坐标X轴+100比较与B的灰度值是否相同,Y轴+50,比较C点的灰度值是否相同。如果图2上与ABC对应点位的灰度值一样,基本上就可以理解找到了有图1相似的位置。这就是找3个点


图片.png


为了安全可以把AA轮询完毕。如果有多个相似区域,就在比较D点。这就是比较4个点。


如果ABCD全部相同的区域也有多个,那就比较F点,就是图一的中心点位。 这就是找5个点。这种情况下,就算有多个点位相同,也可以直接返回第一个了就得了。



完毕!!







雪藏琉璃峰 T0 被采纳率150%
2020-12-18 15:36
打赏 1 3
页面统计
2114 访问
1 帮助
0.00 打赏

hierror 2019 © hierror.com 京ICP备13026190号-1

通知消息
  • 暂无任何消息