使用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基于queue和threading实现多线程下载实例
Oct 08 Python
python下paramiko模块实现ssh连接登录Linux服务器
Jun 03 Python
Python爬虫DNS解析缓存方法实例分析
Jun 02 Python
Python 判断是否为质数或素数的实例
Oct 30 Python
Python编写一个优美的下载器
Apr 15 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 Python
python基于SMTP协议发送邮件
May 31 Python
python可视化实现KNN算法
Oct 16 Python
python 计算方位角实例(根据两点的坐标计算)
Jan 17 Python
python 项目目录结构设置
Feb 14 Python
在Mac中PyCharm配置python Anaconda环境过程图解
Mar 11 Python
Pyhton爬虫知识之正则表达式详解
Apr 01 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
无线电的诞生过程
2021/03/01 无线电
Codeigniter检测表单post数据的方法
2015/03/21 PHP
php简单生成随机数的方法
2015/07/30 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
greybox——不开新窗口看新的网页
2007/02/20 Javascript
自用js开发框架小成 学习js的朋友可以看看
2010/11/16 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
js带按钮的提示框可供选择示例代码
2013/09/17 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
2014/05/02 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
JavaScript仿微博输入框效果(案例分析)
2016/12/06 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
webpack踩坑之路图片的路径与打包
2017/09/05 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
Python3.8中使用f-strings调试
2019/05/22 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
Python 图像对比度增强的几种方法(小结)
2019/09/25 Python
keras做CNN的训练误差loss的下降操作
2020/06/22 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
char型变量中能不能存贮一个中文汉字
2015/07/08 面试题
转正申请报告格式
2015/05/15 职场文书
小学三年级语文教学反思
2016/03/03 职场文书
安全生产协议书
2016/03/22 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers
vue特效之翻牌动画
2022/04/20 Vue.js