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读取环境变量的方法和自定义类分享
Nov 22 Python
python学习教程之Numpy和Pandas的使用
Sep 11 Python
python利用ffmpeg进行录制屏幕的方法
Jan 10 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
Jun 19 Python
使用python进行广告点击率的预测的实现
Jul 04 Python
Python内置数据类型list各方法的性能测试过程解析
Jan 07 Python
python离线安装外部依赖包的实现
Feb 13 Python
Django 项目布局方法(值得推荐)
Mar 22 Python
python轮询机制控制led实例
May 03 Python
Python requests模块安装及使用教程图解
Jun 30 Python
matplotlib subplot绘制多个子图的方法示例
Jul 28 Python
详解Python为什么不用设计模式
Jun 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/05/24 PHP
解析:使用php mongodb扩展时 需要注意的事项
2013/06/18 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
jquery创建一个ajax关键词数据搜索实现思路
2013/02/26 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
2014/10/14 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
2016/06/30 Javascript
JavaScript实现DOM对象选择器
2016/09/24 Javascript
JS正则表达式之非捕获分组用法实例分析
2016/12/28 Javascript
fullPage.js和CSS3实现全屏滚动效果
2017/05/05 Javascript
详解Angular2响应式表单
2017/06/14 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
Node层模拟实现multipart表单的文件上传示例
2018/01/02 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
Vue指令之 v-cloak、v-text、v-html实例详解
2019/08/08 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
[01:46]新英雄登场
2019/09/10 DOTA
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
python实时监控cpu小工具
2018/06/21 Python
Python零基础入门学习之输入与输出
2019/04/03 Python
python框架flask表单实现详解
2019/11/04 Python
python如何构建mock接口服务
2021/01/28 Python
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
表彰先进的通报
2014/01/31 职场文书
会计专业毕业自荐书范文
2014/02/08 职场文书
项目施工员岗位职责
2014/03/09 职场文书
爱国演讲稿500字
2014/05/04 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书
污染环境建议书
2015/09/14 职场文书
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python