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模仿POST提交HTTP数据及使用Cookie值的方法
Nov 10 Python
Python读写Excel文件方法介绍
Nov 22 Python
python清除指定目录内所有文件中script的方法
Jun 30 Python
Python正则表达式和元字符详解
Nov 29 Python
详解pyenv下使用python matplotlib模块的问题解决
Nov 29 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
python dumps和loads区别详解
Feb 04 Python
Python sys模块常用方法解析
Feb 20 Python
基于Django OneToOneField和ForeignKey的区别详解
Mar 30 Python
在Mac中配置Python虚拟环境过程解析
Jun 22 Python
浅谈matplotlib 绘制梯度下降求解过程
Jul 12 Python
Python 按比例获取样本数据或执行任务的实现代码
Dec 03 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
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
简化php模板页面中分页代码的解析
2009/02/06 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
PHP多个文件上传到服务器实例
2014/10/29 PHP
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
Linux下编译redis和phpredis的方法
2016/04/07 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
给Function做的OOP扩展
2009/05/07 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
2014/09/03 Javascript
在Google 地图上实现做的标记相连接
2015/01/05 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
2015/04/13 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
Vue+Element使用富文本编辑器的示例代码
2017/08/14 Javascript
express如何使用session与cookie的方法
2018/01/30 Javascript
简单的vuex 的使用案例笔记
2018/04/13 Javascript
浅析Vue项目中使用keep-Alive步骤
2018/07/27 Javascript
使用python的chardet库获得文件编码并修改编码
2014/01/22 Python
python实现跨文件全局变量的方法
2014/07/07 Python
Python爬取商家联系电话以及各种数据的方法
2018/11/10 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
Python实现代码统计工具
2019/09/19 Python
python的pip有什么用
2020/06/17 Python
在CentOS7下安装Python3教程解析
2020/07/09 Python
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
中学生个人自我评价
2014/02/06 职场文书
电视节目策划方案
2014/05/16 职场文书
成绩报告单家长评语
2014/12/30 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
水电工程师岗位职责
2015/02/13 职场文书
海底两万里读书笔记
2015/06/26 职场文书
高一数学教学反思
2016/02/18 职场文书