函数公式网 高中函数 图像拐点检测——原理与代码实现

图像拐点检测——原理与代码实现

今天带来的内容只能用两个字来形容——干货! ! 首先给大家科普一下图像识别的常识。 从计算机的角度来看,一张图片其实就是一个矩阵,每个矩阵中的一个值对应图片的一个像素点。 (下图摘自《机器学习的实际应用》)

其实图中有很多边和角。 今天就来介绍一下如何通过算法找到图片的角点。

其实找角很简单。 就是通过图像矩阵中的移动窗口遍历矩阵中的值。 一旦现有像素发生明显变化,就可能是一个拐点。 这个过程有点像“拿条浴巾闭上眼睛,从上往下搓,用力搓的时候,会觉得这个部位和别的地方不一样。没错,就是你的膝盖。”

严肃点,看数学公式,(x,y)可以理解为一张图片的横纵坐标,也就是人体。(u,v)是窗函数,也就是 移动的毛巾,找图片的拐点,就跟洗澡找身体硬的地方一样,需要不断游动(u,v)的值,当这个值发生剧烈变化时,说明 有一个拐点。

最后,通过数学方法,可以简化上述函数式。 过程很复杂,大家可以理解。 最终结果:

R是这样判断的,R=MIN(x’,y’),x’表示图片的横向变化趋势,y’表示图片的纵向变化趋势 图片,可以用图片说明,

(1) 下图左起第一张图,y’方向的变化很小,而x’方向的变化很大。 它可以设置为x’>0,y'<0,所以R<0。

(2) 中间的两个方向不变,R=0

(3) 最右边的两个方向变化很大,x’>0 , y’ >0, R>0

因此,最右边的图是角,最左边的图是边,中间的图什么都不是。

代码

下面是一段OPENCV实现拐点检测的代码。 你可以用红点标记角落,给你一个直观的印象。

将 numpy 导入为 np

导入cv2

从 matplotlib 将 pyplot 导入为 plt

img = cv2.imread(‘样本.jpg’)

灰色 = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

角落= cv2.goodFeaturesToTrack(灰色,25,0.01,10)

角落= np.int0(角落)

因为我在角落里:

x,y = i.ravel()

简历2。 圆(img,(x,y),3,255,-1)

plt.imshow(img), plt.show()

再跑个case给大家看看,周围没有特别明显的转角,所以拍了一张感觉比较明显的转角,嗯!

原图:

运行结果:

今天写代码的时候快没氧了,欢迎暴力转载,良心制作,谢谢 你!

本文来自网络,不代表函数公式网立场,转载请注明出处:https://www.cyhsb.com/gzhs/1544.html

两张图看懂什么是新冠肺炎疫情“拐点” 网友:这回懂了

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

返回顶部