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深入学习之闭包
Aug 31 Python
对numpy数据写入文件的方法讲解
Jul 09 Python
python中map的基本用法示例
Sep 10 Python
在python里协程使用同步锁Lock的实例
Feb 19 Python
python的schedule定时任务模块二次封装方法
Feb 19 Python
基于python 微信小程序之获取已存在模板消息列表
Aug 05 Python
Python代码实现http/https代理服务器的脚本
Aug 12 Python
详解用python计算阶乘的几种方法
Aug 14 Python
Numpy的简单用法小结
Aug 28 Python
使用matlab或python将txt文件转为excel表格
Nov 01 Python
django-利用session机制实现唯一登录的例子
Mar 16 Python
Python利用myqr库创建自己的二维码
Nov 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
php 远程图片保存到本地的函数类
2008/12/08 PHP
php上传文件并显示上传进度的方法
2015/03/24 PHP
php函数重载的替代方法--伪重载详解
2015/05/08 PHP
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
JavaScript实现删除,移动和复制文件的方法
2015/08/05 Javascript
Node.js重新刷新session过期时间的方法
2016/02/04 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
分享一个精简的vue.js 图片lazyload插件实例
2017/03/13 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
原来JS还可以这样拆箱转换详解
2019/02/01 Javascript
Vue.js轮播图走马灯代码实例(全)
2019/05/08 Javascript
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
基于python图像处理API的使用示例
2020/04/03 Python
打印tensorflow恢复模型中所有变量与操作节点方式
2020/05/26 Python
python开发前景如何
2020/06/11 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
python 递归相关知识总结
2021/03/03 Python
CSS3基础(RGBa、text-shadow、box-shadow、border-radius)
2012/11/13 HTML / CSS
JMS中Topic和Queue有什么区别
2013/05/15 面试题
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
怎样自定义一个异常类
2016/09/27 面试题
计算机通信专业推荐信
2014/02/22 职场文书
酒店员工培训方案
2014/06/02 职场文书
交心谈心活动总结
2015/05/11 职场文书
2016应届毕业生就业指导课心得体会
2016/01/15 职场文书
python3.9之你应该知道的新特性详解
2021/04/29 Python
python 实现图与图之间的间距调整subplots_adjust
2021/05/21 Python
Vue实现导入Excel功能步骤详解
2021/07/03 Vue.js
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技