使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
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,就会使用方程,
否则 False ,使用方程:
其中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边缘检测功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
相关推荐
-
Window10+Python3.5安装opencv的教程推荐
1.确定Python版本,电脑64位或者32位 打开cmd(window键+R,输入cmd就出现),在命令行输入:打开cmd(window键+R,输入cmd就出现),在命令行输入:python Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", &quo
-
python opencv实现图像边缘检测
本文利用python opencv进行图像的边缘检测,一般要经过如下几个步骤: 1.去噪 如cv2.GaussianBlur()等函数: 2.计算图像梯度 图像梯度表达的是各个像素点之间,像素值大小的变化幅度大小,变化较大,则可以认为是出于边缘位置,最多可简化为如下形式: 3.非极大值抑制 在获得梯度的方向和大小之后,应该对整幅图像做一个扫描,去除那些非边界上的点.对每一个像素进行检查,看这个点的梯度是不是周围具有相同梯度方向的点中最大的.如下图所示: 4.滞后阈值 现在要确定那些边界才是真正的
-
OpenCV实现图像边缘检测
最近自己在做一个有关图像处理的小项目,涉及到图像的边缘检测.直线检测.轮廓检测以及角点检测等,本文首先介绍图像的边缘检测,使用的是Canny边缘检测算法,具体代码以及检测效果如下: 1.代码部分: // Image_Canny.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <cv.h> #include "highgui.h" using namespace cv; int _tmain(int
-
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
无论是Windows.Linux.还是树莓派 .配置python3的opencv环境都是让人头大的一件事情,尤其是许多人用pip安装以后,发现opencv虽然装上了,但是却装在了系统原生的python2下. 笔者也是经历过很多次失败之后,才安装成功. 本文采用编译的方法配置opencv,每一步都有ubuntu和树莓派的分别配置,由于两个系统极其相似(可以说是基本一样),所以并在一文详解. 一般来说,只要按照步骤去安装配置,就不会出错.废话不多说,开始表演! step1:准备工作 1.ubuntu
-
OpenCV 边缘检测
边缘在人类视觉和计算机视觉中均起着重要的作用. 人类能够仅凭一张背景剪影或一个草图就识别出物体类型和姿态. 其中OpenCV提供了许多边缘检测滤波函数,这些滤波函数都会将非边缘区域转为黑色,将边缘区域转为白色或其他饱和的颜色. 不过这些滤波函数都很容易将噪声错误地识别为边缘,所以需要进行模糊处理. 本次的模糊操作使用高斯模糊(低通滤波器),最常用的模糊滤波器(平滑滤波器)之一,是一个削弱高频信号强度的低通滤波器. 低通滤波器,在像素与周围像素的亮度差值小于一个特定值时,平滑该像素的亮度,主要用于
-
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
1.OpenCV下载 首先创建一个空的文件夹,进入文件夹执行如下命令,如我创建的文件夹是opencv-python cd opencv-python git clone https://github.com/opencv/opencv.git 也可以直接进入网址OpenCV_Download下载 使用git下载后应有一个名字为opencv的文件夹,进入文件夹执行如下命令: cd opencv mkdir build cd build 2.编译opencv源码 使用cmake编译opencv源码,
-
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
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 edgeIm
-
OpenCV基础HSV颜色空间*args与**kwargs滑动条传参问题
目录 一.基础理论 1.Hue(色相) 2.Value(明度) 3.Saturation(饱和度) 二.hsv三通道及单通道效果 三.*args && **kwargs 四.滚动条控制h.s.v(min && max) 1.创建滚动条 2.回调函数 -- 阈值设置 3.回调函数 -- 感兴趣值 参考资料 一.基础理论 HSV:HSV是一种为了加快调色效率,且易于理解的概念. Hue:色相(具体的颜色) Saturation:饱和度.色彩纯净度 Value:明度 1.Hue(
-
Python OpenCV 使用滑动条来调整函数参数的方法
引言 在观察OpenCV中某个函数在不同参数的情况下,所得到的效果的时候,我之前是改一次参数运行一次,这样做起来操作麻烦,效率低下.为了更便捷的观察参数变化时带来的处理效果改变 可以使用滑动条来改变参数 具体思路 使用cv2.createTrackbar()创建滑动条,有几个参数就创建几个 对每个参数定义回调函数 在回调函数中显示图片 注意 滑动条的窗口名称 要与 图片显示的窗口名字相同 代码实现 import cv2 d = 0 color = 0 space = 0 def change_d
-
Android自定义View实现等级滑动条的实例
Android自定义View实现等级滑动条的实例 实现效果图: 思路: 首先绘制直线,然后等分直线绘制点: 绘制点的时候把X值存到集合中. 然后绘制背景图片,以及图片上的数字. 点击事件down的时候,换小图片为大图片.move的时候跟随手指移动. up的时候根据此时的X计算最近的集合中的点,然后自动吸附回去. 1,自定义属性 <?xml version="1.0" encoding="utf-8"?> <resources> <de
-
jQuery实现带滑动条的菜单效果代码
本文实例讲述了jQuery实现带滑动条的菜单效果代码.分享给大家供大家参考.具体如下: 这是一款带滑动条的jQuery滑动菜单,菜单下边有一个蓝色的线条,鼠标移上哪里它就跟向哪里,可以指引当前菜单的位置,另外,动画效果是基于jquery的animate(),对此有兴趣学习的正好可参考下代码. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-move-buttom-line-style-codes/ 具体代码如下: <!DOCTYPE
-
基于OpenCV python3实现证件照换背景的方法
简述 生活中经常要用到各种要求的证件照电子版,红底,蓝底,白底等,大部分情况我们只有其中一种,所以通过技术手段进行合成,用ps处理证件照,由于技术不到位,有瑕疵,所以想用python&openCV通过代码的方式实现背景颜色替换,加强一下对于openCV的学习,锻炼一下编码水平. 软件环境: python3.5 opencv2 windows 10 图像载入 导入opencv库,使用imread函数读取图片 import cv2 import numpy as np img=cv2.imread(
-
如何用OpenCV -python3实现视频物体追踪
opencv OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效--由一系列 C 函数和少量 C++ 类构成,同时提供了Python.Ruby.MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法. OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口.该库也有大量的Python.Java and MATLAB/OCTAVE(版本2.
-
基于opencv的selenium滑动验证码的实现
基于selenium进行动作链 由于最近很多人聊到滑动验证码怎么处理,所以决定自己动手试一下. 做一个东西前.我们首先要对这个东西的操作过程有一个大概的了解. 打开验证码页面. 鼠标放到拖动按钮上 对拖动按钮进行拖动 拖动到阴影快重合的位置. 放开拖动按钮. from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains artice = browser.find_el
-
OpenCV半小时掌握基本操作之图像轮廓
目录 概述 图像轮廓 绘制轮廓 轮廓特征 轮廓近似 边界矩形 外接圆 [OpenCV]⚠️高手勿入! 半小时学会基本操作 ⚠️ 图像轮廓 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. 图像轮廓 cv2.findContours可以帮助我们查找轮廓. 格式: cv2.findContours(image, mode, method, contours=None, hierarchy=None, offset=Non
-
iOS实现多个垂直滑动条并列视图
本文实例为大家分享了iOS实现多个垂直滑动条并列视图的具体代码,供大家参考,具体内容如下 上一篇文章我们实现了一个垂直滑动条的类 (VerticalSlider),用来满足垂直滑动的需求.那么这篇文章我们来把多个垂直滑动条放到一起,可以在一个视图上并排多个垂直滑动条,也算是一个实际应用的场景. 需求: 同时展示多个垂直滑动条 每个滑动条高度和视图高度相同,随视图高度自动变化 所有滑动条宽度相同,宽度为视图宽度除以滑动条个数 根据提供的滑动条的值更新视图 传递滑动条的索引和值 需求还是比较简单的,
随机推荐
- 用Python解决计数原理问题的方法
- js 金额文本框实现代码
- oracle 常用的几个SQL
- JavaScript中最简洁的编码html字符串的方法
- js 有框架页面跳转(target)三种情况下的应用
- js对象浅拷贝和深拷贝详解
- javascript匀速运动实现方法分析
- PHP中动态HTML的输出技术
- 编写Bash Shell通过gnuplot绘制系统性能数据图的方法
- 微信小程序 wx:key详细介绍
- PowerShell中执行Javascript的方法示例
- 卸载VS2011 Developer Preview后Sql Server2008 R2建立数据库关系图报“找不到指定的模块”错误的解决方法
- JQuery Easyui Tree的oncheck事件实现代码
- jQuery实现给input绑定回车事件的方法
- 为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
- JS嵌套函数调用上下文的问题解决
- 远程桌面登录蓝色屏幕、不显示桌面怎么解决?
- Java关系操作符简写介绍
- Android使用http请求手机号码归属地查询代码分享
- 网吧ADSL维护指南