使用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编码最佳实践之总结
Feb 14 Python
Python语言实现获取主机名根据端口杀死进程
Mar 31 Python
Python实现从log日志中提取ip的方法【正则提取】
Mar 31 Python
python 文件查找及内容匹配方法
Oct 25 Python
python KNN算法实现鸢尾花数据集分类
Oct 24 Python
Python散点图与折线图绘制过程解析
Nov 30 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
Feb 07 Python
Python字典添加,删除,查询等相关操作方法详解
Feb 07 Python
python字符串的index和find的区别详解
Jun 20 Python
关于Kotlin中SAM转换的那些事
Sep 15 Python
K近邻法(KNN)相关知识总结以及如何用python实现
Jan 28 Python
PyQt5实现多张图片显示并滚动
Jun 11 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
《五等分的花嫁》漫画完结!2020年10月第2期TV动画制作组换血!
2020/03/06 日漫
php中文本数据翻页(留言本翻页)
2006/10/09 PHP
php5.2.0内存管理改进
2007/01/22 PHP
php GeoIP的使用教程
2011/03/09 PHP
PHP运行模式的深入理解
2013/06/03 PHP
Yii实现MySQL多数据库和读写分离实例分析
2014/12/03 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
php中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
jQuery EasyUI 获取tabs的实例解析
2016/12/06 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
使用JQ完成表格隔行换色的简单实例
2017/08/25 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
Python加载带有注释的Json文件实例
2018/05/23 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
python3注册全局热键的实现
2020/03/22 Python
Python pymysql模块安装并操作过程解析
2020/10/13 Python
Pyside2中嵌入Matplotlib的绘图的实现
2021/02/22 Python
英国最大的网上药品商店:Chemist Direct
2017/12/16 全球购物
年终自我鉴定
2013/10/09 职场文书
总经理工作职责范文
2014/03/14 职场文书
《望庐山瀑布》教学反思
2014/04/22 职场文书
物理学专业自荐信
2014/06/11 职场文书
户籍证明模板
2014/09/28 职场文书
西安大雁塔导游词
2015/02/10 职场文书
2015年度质量工作总结报告
2015/04/27 职场文书
消防安全月活动总结
2015/05/08 职场文书
团组织关系介绍信
2019/06/24 职场文书
SQL基础查询和LINQ集成化查询
2022/01/18 MySQL
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android
jdbc中自带MySQL 连接池实践示例
2022/07/23 MySQL