图像拐点检测-原理以及代码实现
今天带来的内容只用两个字形容-干货!!首先我们科普下图像识别的常识,图片在电脑看来,其实就是一个矩阵,每个矩阵中的一个值都对应图片的一个像素点。(下图摘自《机器学习实践应用》)
图片中其实是有很多的边以及拐角的,今天要介绍的就是如何通过算法找到图片拐角。
原理
其实找到拐角,很简单,就是在图片矩阵中,通过一个移动的窗口去遍历矩阵中的数值,一旦返现有像素变化明显的地方,那就可能是一个拐点。这个过程就有点像“拿澡巾闭着眼睛从上向下搓澡,当你搓到一个硬硬的东西的时候,你会感觉这个部位跟其它的地方不同,没错,这里就是你的膝盖。”
还是正经一点,看一下数学公式,(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的代码实现一下拐点检测,可以通过红点把拐角的地方标出来,给大家一个直观印象。
import numpy as np import cv2 from matplotlib import pyplot as plt img = cv2.imread('sample.jpg') gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) corners = cv2.goodFeaturesToTrack(gray,25,0.01,10) corners = np.int0(corners) for i in corners: x,y = i.ravel() cv2.circle(img,(x,y),3,255,-1) plt.imshow(img),plt.show()
再跑一个case给大家看看,身边没有拐角特别明显的东西,随手弄了张感觉比较明显的拐角图,恩!
原图:
运行结果:
今天代码写的我快缺氧了,欢迎猛烈转载,良心制作,谢谢!
参考:
https://blog.csdn.net/woxincd/article/details/60754658
https://blog.csdn.net/qq_41352018/article/details/79944481
图像拐点检测-原理以及代码实现相关推荐
- 图像显著性检测论文及代码汇总
近年来,图像显著性检测研究引起了大量的学者关注.为了方便学术研究,本博客汇总了近几年比较经典的图像显著性检测论文及代码,同时也收集了一些显著性检测相关的Toolbox.Benchmark和大牛的主页等 ...
- 【图像检测】基于Itti模型实现图像显著性检测附matlab代码
1 简介 视觉显著性计算模型以心理学.神经科学.认知理论等领域的研究成果或假说为前提,建立数学模型来模拟人类视觉系统指引注意力分配和视觉认知的过程,通过模拟和仿真人类视觉感知机理,将存在待检测目标的人 ...
- matlab评估边缘检测性能,【模糊推理】模糊逻辑图像边缘检测,原理+matlab代码~...
这篇博客是接着上一篇来哒,https://blog.csdn.net/luolan9611/article/details/94285158 本篇博客及上篇博客搜集的资料.实验代码.实验报告.PPT均 ...
- 【模糊推理】模糊逻辑图像边缘检测,原理+matlab代码~
这篇博客是接着上一篇来哒,https://blog.csdn.net/luolan9611/article/details/94285158 本篇博客及上篇博客搜集的资料.实验代码.实验报告.PPT均 ...
- 【显著性检测】基于HC算法实现图像显著性检测附MATLAB代码
1 简介 图像融合是一种重要的增强图像信息的技术方法,如何对同一目标的多源遥感图像数据进行有效的融合,最大限度地利用多源遥感数据中的有用信息,提高系统的正确识别.判断和决策能力,这是遥感数据融合研究的 ...
- 【图像检测】基于AC算法实现图像显著性检测附matlab代码
1 简介 AC算法也是Achanta等提出的,与FT算法类似,只是在求欧式距离时使用的均值不再是整幅图像的均值,而是选取不同大小邻域内的均值(三种大小)分别求取欧式距离,再相加得到. 2 部分代码 ...
- 视觉显著性python_OpenCV—python 图像显著性检测算法—HC/RC/LC/FT
文章目录 一.显著性检测研究现状 二.基于谱残差法的显著性检测 三.基于全局对比度图像显著性检测(LC) 2.1 基于直方图对比度的显著性检测(HC) 2.2 基于区域的对比度方法(region-ba ...
- python视觉识别_视觉显著性python_OpenCV—python 图像显著性检测算法—HC/RC/LC/FT
文章目录 一.显著性检测研究现状 二.基于谱残差法的显著性检测 三.基于全局对比度图像显著性检测(LC) 2.1 基于直方图对比度的显著性检测(HC) 2.2 基于区域的对比度方法(region-ba ...
- 砍掉九成代码,重构并简化YOLOv5图像目标检测推理实现
YOLOv5官方开源代码给出了完成的推理实现,但过于封装,只能通过修改配置参数对指定文件夹下图像和视频进行推理,而且三百多行的推理代码也显得过于冗长.如果想要在项目上进行部署应用,显然需要更高的灵活性 ...
最新文章
- Android异步处理三:Handler+Looper+MessageQueue深入详解
- php项目架构图,项目架构 · Lanson技术文档 · 看云
- 关于流水帐表序列号生成时的并发操作问题
- ubuntu16.04上安装gstreamer
- H5视频之video.js播放rtmp直播源和hls直播源
- ABAP:BAPI_ACC_DOCUMENT_POST扩展字段
- 58同城沈剑:好的架构是进化来的,不是设计来的
- LeetCode 2008. 出租车的最大盈利(DP)
- python-对象-验证对象与类的关系
- (01)VHDL介绍
- el表达式判断不为空_Java学习72天---EL和JSTL表达式学完.
- oracle18cscott,Oracle 18c 数据库中scott用户不存在的解决方法
- linux系统声卡安装教程,Linux操作系统声卡驱动的安装与配置
- OpenCV中使用 cv2.calcHist()-画直方图案例
- 树莓派上编写串口助手软件
- python对excel进行读写操作
- HDU 1208 Pascal‘s Travels
- C语言调用so动态库的两种方式
- 良心的vscode主题推荐
- 移动比联通强的原因^_^
热门文章
- PAT甲级1075 PAT Judge:[C++题解]排序、结构体
- python定义字符串1hdhdjdjd_python基础总结(字符串)
- Golang Study 二 UDP套接字使用
- 乐享计算机会计学院,EMBA
- python中index从列表中查_在Python中查找包含它的列表的项目的索引
- 32位oracle和64位的区别,区分你的oracle是64位还是32位
- 有没有插件_这 10 款插件让你的 GitHub 更好用、更有趣
- 创智播客微服务_【传智播客】JavaEE在职加薪课
- win10上安装opencv详细教程
- python elasticsearch