python+opencv实现阈值分割


Posted in Python onDecember 26, 2018

最近老师留了几个作业,虽然用opencv很简单一句话就出来了,但是还没用python写过。在官方文档中的tutorial中的threshold里,看到可以创建两个滑动条来选择type和value,决定用python实现一下

注意python中的全局变量,用global声明

开始出现了一些问题,因为毁掉函数每次只能传回一个值,所以每次只能更新value,后来就弄了两个毁掉函数,这个时候,又出现了滑动其中一个,另一个的值就会变为默认值的情况,这个时候猜想是全局变量的问题,根据猜想改动之后果然是。
感觉还有更简单的方法,不需要设置两个回调参数,对python不是很熟悉,时间有限,先不折腾了

(2016-5-10)到OpenCV-Python Tutorials's documentation!可以下载

代码

# -*- coding: utf-8 -*- 

import cv2

#两个回调函数
def thresholdType(threshold_type):
 global THRESHOLD_TYPE 
 THRESHOLD_TYPE = threshold_type
 print threshold_TYPE, threshold_VALUE
 ret, dst = cv2.threshold(scr, THRESHOLD_VALUE, max_value, THRESHOLD_TYPE) 
 cv2.imshow(window_name,dst)

def thresholdValue(threshold_value):
 global THRESHOLD_VALUE
 THRESHOLD_VALUE = threshold_value
 print threshold_TYPE, threshold_VALUE
 ret, dst = cv2.threshold(scr, THRESHOLD_VALUE, max_value, THRESHOLD_TYPE) 
 cv2.imshow(window_name,dst)

#全局变量
"""
"Type: 
0: Binary 
1: Binary Inverted 
2: Truncate 
3: To Zero 
4: To Zero Inverted"
"""
THRESHOLD_VALUE = 0
THRESHOLD_TYPE = 3
max_value = 255
max_type = 4
max_BINARY_value = 255
window_name = "Threshold Demo"
trackbar_type = "Type"
trackbar_value = "Value"

#读入图片,模式为灰度图,创建窗口
scr = cv2.imread("G:\homework\SmallTarget.png",0)
cv2.namedWindow(window_name)

#创建滑动条
cv2.createTrackbar( trackbar_type, window_name, \
   threshold_type, max_type, thresholdType)
cv2.createTrackbar( trackbar_value, window_name, \
   threshold_value, max_value, thresholdValue )
#初始化
thresholdType(0)

if cv2.waitKey(0) == 27: 
 cv2.destroyAllWindows()

执行

import threshold
>>> reload(threshold)
0 0
2 0
1 0
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 10
1 12
1 13
1 16
1 18

python+opencv实现阈值分割

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python常用内置函数总结
Feb 08 Python
python实现登陆知乎获得个人收藏并保存为word文件
Mar 16 Python
python使用sorted函数对列表进行排序的方法
Apr 04 Python
从Python的源码浅要剖析Python的内存管理
Apr 16 Python
python求一个字符串的所有排列的实现方法
Feb 04 Python
python中threading开启关闭线程操作
May 02 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
Jun 23 Python
python进度条显示-tqmd模块的实现示例
Aug 23 Python
python 用pandas实现数据透视表功能
Dec 21 Python
VSCODE配置Markdown及Markdown基础语法详解
Jan 19 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
Feb 03 Python
python+opencv实现视频抽帧示例代码
Jun 11 Python
对python xlrd读取datetime类型数据的方法详解
Dec 26 #Python
Flask核心机制之上下文源码剖析
Dec 25 #Python
flask session组件的使用示例
Dec 25 #Python
python+opencv实现霍夫变换检测直线
Oct 23 #Python
python利用插值法对折线进行平滑曲线处理
Dec 25 #Python
基于Python对数据shape的常见操作详解
Dec 25 #Python
Python正则匹配判断手机号是否合法的方法
Dec 09 #Python
You might like
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
PHP面向对象编程快速入门
2006/10/09 PHP
用DBSQL类加快开发MySQL数据库程序的速度
2006/10/09 PHP
php抓取页面的几种方法详解
2013/06/17 PHP
PHP中isset()和unset()函数的用法小结
2014/03/11 PHP
php实现比较全的数据库操作类
2015/06/18 PHP
CI(CodeIgniter)模型用法实例分析
2016/01/20 PHP
微信支付扫码支付php版
2016/07/22 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
javawscript 三级菜单的实现原理
2009/07/01 Javascript
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
javascript的函数作用域
2014/11/12 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
2015/11/18 Javascript
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例
2019/12/23 Javascript
vue插槽slot的简单理解与用法实例分析
2020/03/14 Javascript
javascript实现京东登录显示隐藏密码
2020/08/02 Javascript
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python中的默认参数实例分析
2018/01/29 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
2018/11/30 Python
Python小进度条显示代码
2019/03/05 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
Python 实现进度条的六种方式
2021/01/06 Python
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
利用Node实现HTML5离线存储的方法
2020/10/16 HTML / CSS
美国维生素、补充剂、保健食品购物网站:Vitacost
2016/08/05 全球购物
澳洲的服装老品牌:SABA
2018/02/06 全球购物
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
运动会方阵解说词
2014/02/12 职场文书
卡特教练观后感
2015/06/08 职场文书