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之hello world
May 21 Python
python中的reduce内建函数使用方法指南
Aug 31 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
Jul 22 Python
酷! 程序员用Python带你玩转冲顶大会
Jan 17 Python
python装饰器深入学习
Apr 06 Python
Python实现识别图片内容的方法分析
Jul 11 Python
Python学习笔记之列表推导式实例分析
Aug 13 Python
python内置函数sorted()用法深入分析
Oct 08 Python
TensorBoard 计算图的可视化实现
Feb 15 Python
python实现控制台输出彩色字体
Apr 05 Python
Django DRF路由与扩展功能的实现
Jun 03 Python
学点简单的Django之第一个Django程序的实现
Feb 24 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
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
php接口和抽象类使用示例详解
2014/03/02 PHP
小谈php正则提取图片地址
2014/03/27 PHP
单台服务器的PHP进程之间实现共享内存的方法
2014/06/13 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
JavaScrip常见的一些算法总结
2015/12/28 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
jQuery实现的简单悬浮层功能完整实例
2017/01/23 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
angular动态表单制作
2018/02/23 Javascript
vue-cli脚手架config目录下index.js配置文件的方法
2018/03/13 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
国内常用的js类库大全(CDN公共库)
2020/06/24 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
2020/08/13 Javascript
Python bsddb模块操作Berkeley DB数据库介绍
2015/04/08 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
Python WXPY实现微信监控报警功能的代码
2017/10/20 Python
简述:我为什么选择Python而不是Matlab和R语言
2017/11/14 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
python sklearn常用分类算法模型的调用
2019/10/16 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
Python logging模块原理解析及应用
2020/08/13 Python
乐天旅游香港网站:日本饭店预订
2017/11/29 全球购物
国际商务专业学生个人的自我评价
2013/09/28 职场文书
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL