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实现面向对像的ASP程序实例
Nov 10 Python
Python基于pygame实现的font游戏字体(附源码)
Nov 11 Python
Django验证码的生成与使用示例
May 20 Python
Python编程之字符串模板(Template)用法实例分析
Jul 22 Python
Python tkinter模块中类继承的三种方式分析
Aug 08 Python
python利用socketserver实现并发套接字功能
Jan 26 Python
Python遍历字典方式就实例详解
Dec 28 Python
解决Tensorflow 内存泄露问题
Feb 05 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
May 11 Python
scrapy结合selenium解析动态页面的实现
Sep 28 Python
Python random模块的使用示例
Oct 10 Python
Jupyter Notebook安装及使用方法解析
Nov 12 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
自己动手做一个SQL解释器
2006/10/09 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
2014/09/23 PHP
php中namespace及use用法分析
2016/12/06 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
你真的了解JavaScript吗?
2007/02/24 Javascript
Extjs ajax同步请求时post方式参数发送方式
2009/08/05 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
JS实现新浪微博效果带遮罩层的弹出框代码
2015/10/12 Javascript
javascript从作用域链谈闭包
2020/07/29 Javascript
浅谈javascript的闭包
2017/01/23 Javascript
js实现抽奖效果
2017/03/27 Javascript
ES6中Proxy代理用法实例浅析
2017/04/06 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
2017/05/02 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
node打造微信个人号机器人的方法示例
2018/04/26 Javascript
js数据类型检测总结
2018/08/05 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
python 调试冷知识(小结)
2019/11/11 Python
django框架F&Q 聚合与分组操作示例
2019/12/12 Python
医学专业五年以上个人求职信
2013/12/03 职场文书
英文自荐信
2013/12/19 职场文书
优秀女职工事迹材料
2014/02/06 职场文书
培训专员岗位职责
2014/02/26 职场文书
爱心捐款倡议书
2014/04/14 职场文书
停课通知书
2015/04/24 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
Python实现列表拼接和去重的三种方式
2021/07/02 Python
详解nginx安装过程并代理下载服务器文件
2022/02/12 Servers
sql server偶发出现死锁的解决方法
2022/04/10 SQL Server
bose降噪耳机音能消除人声吗
2022/04/19 数码科技