使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能


Posted in Python onDecember 12, 2019
import cv2
from matplotlib import pyplot as plt
import numpy as np
img= cv2.imread('39.jpg')#加载图片
cv2.namedWindow('Canny edge detect')#设置窗口,cv2.WINDOW_NORMAL表示窗口大小可自动调节
cv2.namedWindow('Original Image',cv2.WINDOW_NORMAL)
cv2.namedWindow('Canny edgeImage',cv2.WINDOW_NORMAL)
def nothing(x):#回调函数
  pass
#创建两个滑动条,分别控制minVal(最小阈值)、maxVal(最大阈值).
# minVal:滑动条名称; 'Canny edge detect':窗口名; 60:滑动条默认滑动位置; 300:最大值 ; nothing:回调函数
cv2.createTrackbar('minVal','Canny edge detect',60,300,nothing)
cv2.createTrackbar('maxVal','Canny edge detect',100,400,nothing)
while(1):
  #获得滑动条所在的位置
  #cv2.getTrackbarPos(滑动条名称,窗口名);
  minVal = cv2.getTrackbarPos('minVal','Canny edge detect')
  maxVal = cv2.getTrackbarPos('maxVal','Canny edge detect')
  #Canny边缘检测
  #cv2.Canny函数参数解析:
  # img:原图像名
  # minVal:最小梯度
  # maxVal:最大梯度
  # 5 :5*5大小的高斯滤波器(卷积核),用来消除噪声影响
  # L2gradient :求图像梯度,从而进行去除非边界上的点(非极大值抑制)
  edgeImage = cv2.Canny(img,minVal,maxVal,5,L2gradient=True)

L2gradient,它可以用来设定 求梯度大小的方程。如果设为 True,就会使用方程,

使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能

否则 False ,使用方程:

使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能

其中Gx,Gy为使用 Sobel 算子的计算水平方向和竖直方向的一阶导数。

#显示图片
  cv2.imshow('Original Image',img) #原图
  cv2.imshow('Canny edgeImage',edgeImage) # Canny检测后的图

  k = cv2.waitKey(1)
  if k ==ord('w')& 0xFF: # 按 w 退出
    break
cv2.destroyAllWindows()#销毁窗口

效果图如下。

使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能

总结

以上所述是小编给大家介绍的使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
详解Python3中字符串中的数字提取方法
Jan 14 Python
Python网络编程详解
Oct 31 Python
分析Python中解析构建数据知识
Jan 20 Python
详解python while 函数及while和for的区别
Sep 07 Python
Python简单基础小程序的实例代码
Apr 28 Python
在Django的View中使用asyncio的方法
Jul 12 Python
扩展Django admin的list_filter()可使用范围方法
Aug 21 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
Feb 26 Python
Anaconda+Pycharm环境下的PyTorch配置方法
Mar 13 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 Python
PyQt 如何创建自定义QWidget
Mar 24 Python
Python之matplotlib绘制折线图
Apr 13 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
Dec 12 #Python
python3中pip3安装出错,找不到SSL的解决方式
Dec 12 #Python
python 使用opencv 把视频分割成图片示例
Dec 12 #Python
Python2与Python3的区别点整理
Dec 12 #Python
opencv3/C++实现视频背景去除建模(BSM)
Dec 11 #Python
opencv3/C++实现视频读取、视频写入
Dec 11 #Python
django框架两个使用模板实例
Dec 11 #Python
You might like
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
javascript每日必学之运算符
2016/02/16 Javascript
jsp 网站引入外部css或者js失效问题解决
2016/10/31 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
2017/04/10 Javascript
jQuery判断邮箱格式对错实例代码讲解
2017/04/12 jQuery
bootstrap daterangepicker汉化以及扩展功能
2017/06/15 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
深入理解Angular4订阅(Subscribe)与取消
2017/11/22 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
Python实现批量转换文件编码的方法
2015/07/28 Python
Python中函数及默认参数的定义与调用操作实例分析
2017/07/25 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
pyinstaller将含有多个py文件的python程序做成exe
2020/04/29 Python
Python urllib库如何添加headers过程解析
2020/10/05 Python
python反爬虫方法的优缺点分析
2020/11/25 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
python数据抓取3种方法总结
2021/02/07 Python
Sneaker Studio捷克:购买运动鞋
2018/07/08 全球购物
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
Lookfantastic意大利官网:英国知名美妆购物网站
2019/05/31 全球购物
介绍一下如何优化MySql
2016/12/20 面试题
商场中秋节活动方案
2014/02/07 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
反邪教学习心得体会
2016/01/15 职场文书
《云雀的心愿》教学反思
2016/02/23 职场文书
2019大学生实习报告
2019/06/21 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
祝福语集锦:给妹妹结婚的祝福语
2019/12/18 职场文书
Linux中sftp常用命令整理
2022/06/28 Servers
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS