图像拐点检测-原理以及代码实现

2023-05-16


今天带来的内容只用两个字形容-干货!!首先我们科普下图像识别的常识,图片在电脑看来,其实就是一个矩阵,每个矩阵中的一个值都对应图片的一个像素点。(下图摘自《机器学习实践应用》)


图片中其实是有很多的边以及拐角的,今天要介绍的就是如何通过算法找到图片拐角。  



原理

其实找到拐角,很简单,就是在图片矩阵中,通过一个移动的窗口去遍历矩阵中的数值,一旦返现有像素变化明显的地方,那就可能是一个拐点。这个过程就有点像“拿澡巾闭着眼睛从上向下搓澡,当你搓到一个硬硬的东西的时候,你会感觉这个部位跟其它的地方不同,没错,这里就是你的膝盖。” 


还是正经一点,看一下数学公式,(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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图像拐点检测-原理以及代码实现 的相关文章

  • 1691_python学习笔记之week3_递归

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 最初接触递归的时候觉得这个有点不好理解 xff0c 怎么能够有这种思维方式 xff1
  • 1692_Git版本控制管理 21-40

    全部学习汇总 xff1a GreyZhang toolbox 常用的工具使用查询 xff0c 非教程 xff0c 仅作为自我参考 xff01 github com 我曾经多次在工作中接触软件版本管理 xff0c 接触过多个公司的软件版本管理
  • 1693_Python处理Excel学习小结 21-41

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 说起来这是我来到北京之后开始接触的第一个新技术 xff0c 我对此痴迷 xff0c
  • 1694_week1_MIT使用Python编程学习手记1

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 首先说明一下 xff0c 这部分信息的整理只是我个人的理解 由于自己的知识功底以及英
  • 1695_week2_算法与函数(MIT使用Python编程学习手记)

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 首先说明一下 xff0c 这部分信息的整理只是我个人的理解 由于自己的知识功底以及英
  • 1696_C语言中变量默认初始化初值探究测试

    全部学习汇总 xff1a GreyZhang c basic little bits of c github com 欢迎路过的YUAN类朋友相互沟通交流 xff0c 也欢迎各位随时指点指正 以下是我的联系方式 xff1a 微信 xff1a
  • 1697_python编程_assertions and exceptions

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 这部分主要关于程序中的异常类型以及处理方式 exception 常见的异常类型 ex
  • 1698_python编程_测试与debug

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 学习了一下这一周的课程 xff0c 讲的主要是测试以及Bug调试方面的东西 在之前我
  • 1699_simulink代码生成配置初级方案

    全部学习汇总 xff1a GreyZhang g matlab MATLAB once used to be my daily tool After many years when I go back and read my old lea
  • 1700_VIM代码自动补齐配置

    全部学习汇总 xff1a GreyZhang editors skills Summary for some common editor skills I used github com 欢迎路过的YUAN类同胞相互交流 xff0c 指点指
  • Python2 备份网站目录并上传百度网盘

    最近用WordPress建了个个人博客 xff0c 本着数据无价的原则编写了本脚本对数据库和网址目录进行备份并上传到百度网盘里 话不多说 xff0c 下面就该Python脚本的程序依赖 代码说明及使用方法进行叙述 一 程序依赖 1 安装Py
  • 1701_week5_效率与搜索

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 这一周的课程很早就学完了 xff0c 碰上自己昼夜加班周末不休的时段一直也没有整理学
  • 1702_week6_面向对象编程

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 放一下自己的联系方式 xff0c 软件爱好者欢迎交流 邮箱 xff1a greyzh
  • 1703_LibreOffice常用功能使用体验

    全部学习汇总 xff1a GreyZhang windows skills some skills when using windows system github com 首先需要说明的是我不是一个重度Office用户 xff0c 甚至算
  • 1704_Linux与Windows使用体验对比

    全部学习汇总 xff1a GitHub GreyZhang little bits of linux My notes on the trip of learning linux 我在我的微博上发过几次对比两个操作系统使用体验的微博 xff
  • 1705_Python处理中文经验与实践

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 曾经在很长的一段时间内 xff0c Python处理中文的时候真是把我难坏了 总觉得
  • 1706_Python中带余数除法

    全部学习汇总 xff1a GitHub GreyZhang python basic My learning notes about python 欢迎路过的YUAN类朋友们 xff0c 希望我们能够相互交流共同成长 如有错误或者不足希望及
  • 1707_Python中的多成员处理

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 欢迎路过的YUAN类朋友们 xff0c 希望我们能够相互交流共同成长 如有错误或者不
  • 1708_Simulink中取数组元素

    全部学习汇总 xff1a GitHub GreyZhang g matlab MATLAB once used to be my daily tool After many years when I go back and read my
  • STM32F407 CUBEMX+HAL库完成对XPT2064触摸屏控制芯片的驱动

    硬件介绍 首先介绍一下硬件 xff0c 我购买的液晶屏大小为480 320 xff0c 液晶屏控制芯片为ST996S xff0c 两者均采用SPI通讯协议 xff0c 这节只讲触摸屏控制芯片XPT2064的部分 如果你需要阅读有关液晶屏控制

随机推荐

  • C++ (STL BOOST) 智能指针的一些解析

    C 43 43 xff08 STL BOOST xff09 智能指针的一些解析 xff0c 包括智能指针的原理 xff0c 智能指针的一些使用 只有了解了原理才能真正用对他们 现在blog的文章几乎就是一把抄 郁闷 C 43 43 里面内存
  • Python安装第三方库PIL时失败的解决办法

    Python中 xff0c 安装第三方模块 xff0c 是通过setuptools这个工具完成的 Python有两个封装了setuptools的包管理工具 xff1a easy install和pip 目前官方推荐使用pip 安装一个第三方
  • 在VMware上安装Ubuntu详细教程

    目录 1 先下载好VMware Workstation Pro 2 下载Ubuntu系统镜像 3 在VMware新建虚拟机 4 开启虚拟机 xff0c 安装Ubuntu 这时我们发现由于窗口太小无法安装 作为全球最流行且最有影响力的Linu
  • 树莓派 Linux 下的串口通讯 (C语言)

    运行环境 xff1a Ubuntu14 04 树莓派3B 43 功能 xff1a 实现串口数据的收发 main c文件 include 34 com h 34 define BUFFER SIZE 30 最大缓存区 char pstr 61
  • 1--FreeRTOS操作系统介绍

    1 FreeRTOS 操作系统介绍 第3章 FreeRTOS 读作 34 free arr toss 34 是一个嵌入式系统使用的开源实时操作系统 FreeRTOS 被设计为 小巧 xff0c 简单 xff0c 和易用 xff0c 能支持许
  • 2--嵌入式操作系统FreeRTOS的原理与实现

    2 嵌入式操作系统FreeRTOS的原理与实现 摘自 xff1a http xilinx eetrend com article 7828 摘要 xff1a FreeRTOS 是一个源码公开的免费的嵌入式实时操作系统 xff0c 通过研究其
  • 自动驾驶技术-环境感知篇:V2X技术的介绍

    V2X技术概述 在前面的几篇文章分别介绍了自动驾驶在环境感知领域的相关技术点 xff0c 主要介绍了如何通过雷达配合视觉技术实现车辆自身的智能 其实在环境感知方面 xff0c 除了利用车辆自身的智能 xff0c 还可以借助外部环境实现信息的
  • 深度学习分布式策略优化、显存优化、通信优化、编译优化综述

    综述 因为我个人最近在从事可能是AI领域对性能挑战最大的方向 xff0c 自动驾驶领域 xff0c 所以对整个深度学习训练的优化尤为关注 xff0c 最近一直在学习相关内容 xff0c 谨以此篇文章做一个总结 我一直很看好深度学习训练优化这
  • 量子计算机的优势和建设挑战

    1 为什么需要量子计算机 目前大家日常使用的计算机都是经典计算机 xff0c 经典计算机计算性能的发展遵循摩尔定律 xff0c 在价格不变时 xff0c 集成电路上可容纳的晶体管数目 xff0c 约每隔18个月便会增加一倍 性能也将提升一倍
  • 浅谈ChatGPT对生产关系及工具的颠覆影响

    xff08 先歪个楼 xff0c 配图是三体乱纪元 xff0c 证明三体问题无解 xff0c 而ChatGPT证明了AIGC问题是可解的 xff09 最近ChatGPT越来越热 xff0c 仿佛看到了资本市场又一次的爆发 最近周末也会跟几个
  • 蓟门边studio-码农创业路的起点

    蓟门边工作室 xff0c 开张了 先简单介绍下lz的情况吧 xff01 lz是北邮在读硕士 xff0c 码农一枚 断断续续写代码也有一两个年头了 xff0c 但是感觉总是在外面飘着 xff0c 没写过什么大的项目 xff0c 也没真正依靠技
  • 【机器学习算法-python实现】逻辑回归的实现(LogicalRegression)

    转载请注明出处 xff1a http blog csdn net buptgshengod 1 背景知识 在刚刚结束的天猫大数据s1比赛中 xff0c 逻辑回归是大家都普遍使用且效果不错的一种算法 xff08 1 xff09 回归 先来说说
  • 计算机视觉~~~

    这两年 xff0c 计算机视觉似乎火了起来计算机视觉的黄金时代真的到来了吗 xff1f 生物医学 机械自动化 土木建筑等好多专业的学生都开始研究其在各自领域的应用 xff0c 一个视觉交流群里三分之一以上都不是计算机相关专业的 当然 xff
  • 新闻个性化推荐系统(python)-(附源码 数据集)

    1 背景 最近参加了一个评测 xff0c 是关于新闻个性化推荐 说白了就是给你一个人的浏览记录 xff0c 预测他下一次的浏览记录 花了一周时间写了一个集成系统 xff0c 可以一键推荐新闻 xff0c 但是准确率比较不理想 xff0c 所
  • 明天是我的生日,写给24岁的自己

    哎 xff0c 本来想把今晚留给蛋疼的latex 我的导师让我写一篇论文 xff0c 我正在研究怎么用latex 但是想了想 xff0c 明天就过生日了 xff0c 最后一晚还是写点东西 xff0c 静静地思考下 本来想写点东西发到朋友圈或
  • 【码农本色】用数据解读我的2014

    转眼2014就过去了 xff0c 不禁感叹又老了一岁的同时 xff0c 却发现已经快研究生毕业了 xff0c 趁着这个活动简单总结下2014 1 实习篇 2014年一月份拿到了人生第一个实习offer xff0c 在sony这样的大公司做a
  • 如何用PYTHON代码写出音乐

    如何用PYTHON代码写出音乐 什么是MIDI 博主本人虽然五音不全 xff0c 而且唱歌还很难听 xff0c 但是还是非常喜欢听歌的 我一直在做这样的尝试 xff0c 就是通过人工智能算法实现机器自动的作词和编曲 xff08 在这里预告下
  • 普通程序员如何入门AI

    毫无疑问 xff0c 人工智能是目前整个互联网领域最火的行业 xff0c 随着AlphaGo战胜世界围棋冠军 xff0c 以及各种无人驾驶 智能家居项目的布道 xff0c 人们已经意识到了AI就是下一个风口 当然 xff0c 程序员是我见过
  • 深度学习RNN实现股票预测实战(附数据、代码)

    背景知识 最近再看一些量化交易相关的材料 xff0c 偶然在网上看到了一个关于用 RNN实现股票预测的文章 xff0c 出于好奇心把文章中介绍的代码在本地跑了一遍 xff0c 发现可以 work 于是就花了两个晚上的时间学习了下代码 xff
  • 图像拐点检测-原理以及代码实现

    今天带来的内容只用两个字形容 干货 xff01 xff01 首先我们科普下图像识别的常识 xff0c 图片在电脑看来 xff0c 其实就是一个矩阵 xff0c 每个矩阵中的一个值都对应图片的一个像素点 xff08 下图摘自 机器学习实践应用