使用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 Deque 模块使用详解
Jul 04 Python
python批量生成本地ip地址的方法
Mar 23 Python
python生成IP段的方法
Jul 07 Python
详解Django框架中用户的登录和退出的实现
Jul 23 Python
独特的python循环语句
Nov 20 Python
python基础教程之Filter使用方法
Jan 17 Python
Django中间件工作流程及写法实例代码
Feb 06 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
Jun 27 Python
Python OpenCV处理图像之图像直方图和反向投影
Jul 10 Python
numpy.meshgrid()理解(小结)
Aug 01 Python
pytorch 指定gpu训练与多gpu并行训练示例
Dec 31 Python
python如何保存文本文件
Jun 07 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时间函数用法分析
2016/05/28 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
Javascript 加载和执行-性能提高篇
2012/12/28 Javascript
js随机颜色代码的多种实现方式
2013/04/23 Javascript
JavaScript实现快速排序的方法
2015/07/31 Javascript
js中获取时间new Date()的全面介绍
2016/06/20 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
javascript实现多张图片左右无缝滚动效果
2017/03/22 Javascript
node实现定时发送邮件的示例代码
2017/08/26 Javascript
详解VS Code使用之Vue工程配置format代码格式化
2019/03/20 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
python调用shell的方法
2013/11/20 Python
python多进程操作实例
2014/11/21 Python
Python与Redis的连接教程
2015/04/22 Python
python实现批量监控网站
2016/09/09 Python
python使用KNN算法手写体识别
2018/02/01 Python
python实现pdf转换成word/txt纯文本文件
2018/06/07 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
python输出数组中指定元素的所有索引示例
2019/12/06 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
Bailey帽子官方商店:Bailey Hats
2018/09/25 全球购物
俄罗斯三星品牌商店:Samsungstore
2020/04/05 全球购物
应届毕业生的个人自我鉴定
2013/10/24 职场文书
药物学专业学生的自我评价
2013/10/27 职场文书
通信工程毕业生自荐信
2013/11/01 职场文书
小学生开学感言
2014/02/28 职场文书
组织鉴定材料
2014/06/02 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
投资合作意向书范本
2015/05/08 职场文书
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫