使用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 Django(图文)
Nov 04 Python
EM算法的python实现的方法步骤
Jan 02 Python
python os.listdir按文件存取时间顺序列出目录的实例
Oct 21 Python
python进行文件对比的方法
Dec 24 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
Apr 29 Python
Python协程 yield与协程greenlet简单用法示例
Nov 22 Python
关于Python-faker的函数效果一览
Nov 28 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
Nov 29 Python
Python使用uuid库生成唯一标识ID
Feb 12 Python
Python基于Twilio及腾讯云实现国际国内短信接口
Jun 18 Python
利用python绘制中国地图(含省界、河流等)
Sep 21 Python
python 基于opencv操作摄像头
Dec 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
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
PHP new static 和 new self详解
2017/02/19 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
javascript[js]获取url参数的代码
2007/10/17 Javascript
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
2015/10/01 Javascript
js文本框输入内容智能提示效果
2015/12/02 Javascript
jQuery制作图片旋转效果
2017/02/02 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
js,jq,css多方面实现简易下拉菜单功能
2017/05/13 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
Python set集合类型操作总结
2014/11/07 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
python创建文件备份的脚本
2018/09/11 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
Python常用库大全及简要说明
2020/01/17 Python
python中urllib.request和requests的使用及区别详解
2020/05/05 Python
关于Python字符编码与二进制不得不说的一些事
2020/10/04 Python
都柏林通行卡/城市通票:The Dublin Pass
2020/02/16 全球购物
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
职业生涯规划书的格式
2013/12/29 职场文书
大学信息公开实施方案
2014/03/09 职场文书
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
文明市民先进事迹
2014/05/15 职场文书
自信主题班会
2015/08/14 职场文书
Python测试框架pytest核心库pluggy详解
2022/08/05 Golang