使用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中使用MELIAE分析程序内存占用实例
Feb 18 Python
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
May 06 Python
python使用sqlite3时游标使用方法
Mar 13 Python
Python获取指定字符前面的所有字符方法
May 02 Python
举例讲解Python常用模块
Mar 08 Python
Django 缓存配置Redis使用详解
Jul 23 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
Apr 15 Python
keras.layer.input()用法说明
Jun 16 Python
浅析python函数式编程
Sep 26 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
Dec 07 Python
Python实现王者荣耀自动刷金币的完整步骤
Jan 22 Python
如何用Python徒手写线性回归
Jan 25 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
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
PHP四大安全策略
2014/03/12 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
PHP基于GD库的图像处理方法小结
2016/09/27 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
Jquery取得iframe下内容的方法
2013/11/18 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
react开发教程之React 组件之间的通信方式
2017/08/12 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
2017/10/08 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
[01:20]DOTA2 2017国际邀请赛冠军之路无止竞
2017/06/19 DOTA
Python利用operator模块实现对象的多级排序详解
2017/05/09 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
Python的高阶函数用法实例分析
2019/04/11 Python
python__new__内置静态方法使用解析
2020/01/07 Python
Html5之title吸顶功能
2018/06/04 HTML / CSS
印尼美容产品购物网站:PerfectBeauty.id
2017/12/01 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
如果有两个类A,B,怎么样才能使A在发生一个事件的时候通知B
2016/03/12 面试题
文秘人员工作职责
2014/01/31 职场文书
护士个人自我鉴定
2014/03/24 职场文书
军训拉歌口号
2014/06/13 职场文书
开业庆典活动策划方案
2014/09/21 职场文书
2015年行政部工作总结
2015/04/28 职场文书
如何写通讯稿
2015/07/22 职场文书
教你使用Pandas直接核算Excel中快递费用
2021/05/12 Python
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle