使用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 Web开发框架Django
Jun 30 Python
闭包在python中的应用之translate和maketrans用法详解
Aug 27 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 Python
python爬取亚马逊书籍信息代码分享
Dec 09 Python
python opencv检测目标颜色的实例讲解
Apr 02 Python
Python引用计数操作示例
Aug 23 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
Mar 27 Python
Python常见反爬虫机制解决方案
Jun 01 Python
详解anaconda离线安装pytorchGPU版
Sep 08 Python
详解python的变量缓存机制
Jan 24 Python
pytorch 中forward 的用法与解释说明
Feb 26 Python
python超详细实现完整学生成绩管理系统
Mar 17 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的autoLoad自动加载机制
2012/09/27 PHP
php获取url参数方法总结
2014/11/13 PHP
php使用imagecopymerge()函数创建半透明水印
2018/01/25 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
String.prototype实现的一些javascript函数介绍
2013/11/22 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
对象题目的一个坑 理解Javascript对象
2015/12/22 Javascript
完美解决input[type=number]无法显示非数字字符的问题
2017/02/28 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
详解js类型判断
2018/05/22 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
vue实现商品加减计算总价的实例代码
2018/08/12 Javascript
mpvue 单文件页面配置详解
2018/12/02 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
[02:20]DOTA2亚洲邀请赛 EHOME战队出场宣传片
2015/02/07 DOTA
[00:39]DOTA2上海特级锦标赛 Liquid战队宣传片
2016/03/04 DOTA
python搭建简易服务器分析与实现
2012/12/15 Python
Cpy和Python的效率对比
2015/03/20 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
对Python 3.5拼接列表的新语法详解
2018/11/08 Python
python实现两张图片拼接为一张图片并保存
2019/07/16 Python
python计算导数并绘图的实例
2020/02/29 Python
python实现xml转json文件的示例代码
2020/12/30 Python
Roxy美国官网:澳大利亚冲浪、滑雪健身品牌
2016/07/30 全球购物
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
时尚、社区、科技:SEVENSTORE
2019/04/26 全球购物
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
联谊活动总结
2014/08/28 职场文书
学生上课看漫画的检讨书
2014/09/26 职场文书