使用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 相关文章推荐
简单实现python爬虫功能
Dec 31 Python
书单|人生苦短,你还不用python!
Dec 29 Python
Python实现识别手写数字 简易图片存储管理系统
Jan 29 Python
Python 反转字符串(reverse)的方法小结
Feb 20 Python
Python解决八皇后问题示例
Apr 22 Python
python 使用正则表达式按照多个空格分割字符的实例
Dec 20 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
Jul 04 Python
Python 去除字符串中指定字符串
Mar 05 Python
pycharm 激活码及使用方式的详细教程
May 12 Python
keras分类模型中的输入数据与标签的维度实例
Jul 03 Python
Pytorch实验常用代码段汇总
Nov 19 Python
基于Python 函数和方法的区别说明
Mar 24 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
推荐个功能齐全的发送PHP邮件类
2007/01/03 PHP
php将会员数据导入到ucenter的代码
2010/07/18 PHP
Yii1.1中通过Sql查询进行的分页操作方法
2017/03/16 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
测试你的JS的掌握程度的代码
2009/12/09 Javascript
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
jQuery添加options点击事件并传值实例代码
2016/05/18 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
AngularJS动态加载模块和依赖的方法分析
2016/11/08 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
2017/11/22 Javascript
js中DOM事件绑定分析
2018/03/18 Javascript
代码整洁之道(重构)
2018/10/25 Javascript
vue ssr 实现方式(学习笔记)
2019/01/18 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
2021/01/25 Javascript
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
浅谈python字典多键值及重复键值的使用
2016/11/04 Python
详解使用python crontab设置linux定时任务
2016/12/08 Python
Apache如何部署django项目
2017/05/21 Python
Python基于回溯法子集树模板实现图的遍历功能示例
2017/09/05 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
Pandas:DataFrame对象的基础操作方法
2018/06/07 Python
浅析python继承与多重继承
2018/09/13 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
Python从入门到精通之环境搭建教程图解
2019/09/26 Python
python反扒机制的5种解决方法
2021/02/06 Python
吃透移动端 1px的具体用法
2019/12/16 HTML / CSS
戛纳奢侈品商店:Jacques Loup法国
2019/11/04 全球购物
毕业生个人求职自荐信
2014/02/26 职场文书
爱心捐款倡议书
2014/04/14 职场文书
大学生安全责任书
2014/07/25 职场文书
房屋出租协议书范本(标准版)
2014/09/24 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
2016春季幼儿园小班开学寄语
2015/12/03 职场文书
Python作用域和名称空间的详细介绍
2022/04/13 Python