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 排列组合之itertools
Mar 20 Python
在Python的循环体中使用else语句的方法
Mar 30 Python
Python实现的数据结构与算法之队列详解
Apr 22 Python
Python获取邮件地址的方法
Jul 10 Python
通过实例浅析Python对比C语言的编程思想差异
Aug 30 Python
Python简单实现安全开关文件的两种方式
Sep 19 Python
python方向键控制上下左右代码
Jan 20 Python
Python使用pyautocad+openpyxl处理cad文件示例
Jul 11 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
Mar 30 Python
Python Flask异步发送邮件实现方法解析
Aug 01 Python
python中如何打包用户自定义模块
Sep 23 Python
Python+unittest+requests+excel实现接口自动化测试框架
Dec 23 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转成EXE文件
2006/10/09 PHP
php导出excel格式数据问题
2014/03/11 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
PHP异常处理Exception类
2015/12/11 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
PHP实现抽奖功能实例代码
2020/06/30 PHP
jquery弹出层类代码分享
2013/12/27 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
jQuery获取元素父节点的方法
2016/06/21 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
Node.js中多进程模块Cluster的介绍与使用
2017/05/27 Javascript
Node.js  事件循环详解及实例
2017/08/06 Javascript
js实现鼠标跟随运动效果
2020/08/02 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
[40:53]完美世界DOTA2联赛PWL S3 Magma vs DLG 第二场 12.18
2020/12/20 DOTA
Python实现查找系统盘中需要找的字符
2015/07/14 Python
Python字典简介以及用法详解
2016/11/15 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
python图形绘制奥运五环实例讲解
2019/09/14 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
Python内置函数及功能简介汇总
2020/10/13 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
土建资料员岗位职责
2014/01/04 职场文书
群教个人对照检查材料
2014/08/20 职场文书
公安局副政委班子个人对照检查材料
2014/10/04 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
python读取并查看npz/npy文件数据以及数据显示方法
2022/04/14 Python