python canny 保留指定区域的轮廓线_opencv python Canny边缘提取实现过程解析
这篇文章主要介绍了opencv python Canny边缘提取实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Canny是边缘提取算法,在1986年提出的是一个很好的边缘检测器Canny算法介绍
非最大信号抑制:
高低阈值连接:
example
import cv2 as cv
import numpy as np
# canny运算步骤:5步
# 1. 高斯模糊 - GaussianBlur
# 2. 灰度转换 - cvtColor
# 3. 计算梯度 - Sobel/Scharr
# 4. 非极大值抑制
# 5. 高低阈值输出二值图像
# 非极大值抑制:
# 算法使用一个3×3邻域作用在幅值阵列M[i,j]的所有点上;
# 每一个点上,邻域的中心像素M[i,j]与沿着梯度线的两个元素进行比较,
# 其中梯度线是由邻域的中心点处的扇区值ζ[i,j]给出。
# 如果在邻域中心点处的幅值M[i,j]不比梯度线方向上的两个相邻点幅值大,则M[i,j]赋值为零,否则维持原值;
# 此过程可以把M[i,j]宽屋脊带细化成只有一个像素点宽,即保留屋脊的高度值。
# 高低阈值连接
# T1,T2为阈值,凡是高于T2的都保留,凡是低于T1的都丢弃
# 从高于T2的像素出发,凡是大于T1而且相互连接的都保留。最终得到一个输出二值图像
# 推荐高低阈值比值为T2:T1 = 3:1/2:1,其中T2高阈值,T1低阈值
def edge_demo(image):
blurred = cv.GaussianBlur(image, (3, 3), 0)
gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY)
grad_x = cv.Sobel(gray, cv.CV_16SC1, 1, 0)
grad_y = cv.Sobel(gray, cv.CV_16SC1, 0, 1)
# edge_output = cv.Canny(grad_x, grad_y, 30, 150)
edge_output = cv.Canny(gray, 50, 150)
cv.imshow("gray", gray)
cv.imshow("Canny demo", edge_output)
def main():
src = cv.imread("../images/Crystal.jpg")
cv.imshow("demo",src)
edge_demo(src)
cv.waitKey(0) # 等有键输入或者1000ms后自动将窗口消除,0表示只用键输入结束窗口
cv.destroyAllWindows() # 关闭所有窗口
if __name__ == '__main__':
main()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
本文标题: opencv python Canny边缘提取实现过程解析
本文地址: http://www.cppcns.com/jiaoben/python/299366.html
python canny 保留指定区域的轮廓线_opencv python Canny边缘提取实现过程解析相关推荐
- python canny 保留指定区域的轮廓线_opencv python:Canny边缘提取
Canny是边缘提取算法,在1986年提出的 是一个很好的边缘检测器 Canny算法介绍 非最大信号抑制: 高低阈值连接: example import cv2 as cv import numpy ...
- 【python】python实现屏幕指定区域文字提取(百度API)
因为OCR文字识别功能不是特别好,推荐利用百度API的来实现屏幕指定区域的文字识别. 一.如何注册百度API? 1.打开百度api网页,使用百度账号登陆 2.点击控制台,选择文字识别 3.点击创建应用 ...
- python打开鼠标指定文件夹_学会python文件操作,鼠标好像没用了,学习python第10天...
电影是人类对未来的向往,在<黑客帝国>中,我们看到了一个数字化的社会,而当你学会python文件操作,你也就离你向往的黑客近一点了,用程序来直接影响电脑上的其他文件,只需要几行代码就搞定. ...
- python html转TXT python读取html指定区域文本内容转成txt文件
1.首先,通过python,去将读取遍历程序目录文件夹中,[html]文件夹里面的文件.文件 夹以及子目录.子目录里面的 ,获取到该目录下所有的[.html]文件后,返回一个list对象 2.遍历完成 ...
- python如何捕获指定异常_如何捕获Python中的异常
Python 提供了try except语句捕获并处理异常,该异常处理语句的基本语法结构如下: try: 可能产生异常的代码块 except [(Error1, Error2, ...) [as e] ...
- python 句柄窗口指定位置截图_对Python获取屏幕截图的4种方法详解
Python获取电脑截图有多种方式,具体如下: PIL中的ImageGrab模块 windows API PyQt pyautogui PIL中的ImageGrab模块 import time imp ...
- python删除txt指定内容_正则表达式使用python从文件中过滤和删除特定的多行文本...
我正在编写一个python工具来处理一组文件.该工具将由其他用户而非我使用. 文件类似于以下格式: #Text which I want to keep intact #Lots of text #L ...
- python写入csv指定单元格_使用python将值插入csv中的特定单元格
我想知道是否有办法用python将数据插入到csv文件的特定单元格中.可以说我有变量"数据",它存储值" 300".如何将这些数据添加到csv文件的第3行第2列 ...
- python写入csv指定单元格_使用python中的csv模块写入特定单元格
csv module提供了读取和写入csv文件的工具,但不允许在适当位置修改特定单元. 即使您在问题中突出显示的csvwriter.writerow(行)方法也不允许您识别和覆盖特定行.而是将row参 ...
最新文章
- 程序员应该吃透的集合List
- 为什么要用这些框架来进行开发,直接new一个对象不香吗?
- Linux 4.18 内核新补丁移除了Lustre 文件系统
- 殷拓联手红星美凯龙收购软装家具企业“墙尚”40%股份​
- DreamWeaver下如何应用CSS样式
- [blog摘要]Exploring and Decoding ETW Providers using Event Log Channels
- 【BZOJ 3326】[Scoi2013]数数 数位dp+矩阵乘法优化
- poj3233(矩阵快速幂的和)
- 在线溶氧仪 连接计算机,在线溶氧仪集成设计与数据处理算法分析.pdf
- Spring知识点总结-3
- Atitit.创建快捷方式 windows快捷方式的原理
- VMware Tools 支持 Windows 2000、Windows XP 和 Windows Server 2003 (81466)
- 【181129】VC++ 屏幕截取(窗口截图、选区截图)、屏幕拾色器、放大镜源代码
- Linux命令之dhclient,dhclient命令 – 动态获取或释放IP地址
- 更改iterm2命令行从$到%
- Android解决Could not find manifest-merger.jar问题
- 火星玩家Mars全球合伙人招募计划启动:为电核户外可持续发展贡献实质力量
- 【极简教程】用 Mkdocs 库发布你的网站
- 2007年互联网发展趋势预测:RSS将成为主流
- OTTO机器人之MAX7219点阵
热门文章
- 【定点数运算】定点的乘法和加法
- jenkin+docker 构建项目
- if(a)与if(a){ }
- 非线性最小二乘问题的求解方法(一)
- oracle小型机价格内存,案例:IBM aix小型机内存使用太多导致Oracle shared pool 相关lat...
- Linux more命令:查看文件
- 《存储秘史》之×××北斗
- List系列集合、泛型、Set系列集合、Collection系列集合使用场景总结
- OpenCV 调包侠:调用本地摄像头人脸识别
- 不要再搞混Vue的响应式原理和双向数据绑定了