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字符串替换的2种方法
Nov 30 Python
用Python实现web端用户登录和注册功能的教程
Apr 30 Python
python3中函数参数的四种简单用法
Jul 09 Python
Python解决走迷宫问题算法示例
Jul 27 Python
Python 打印中文字符的三种方法
Aug 14 Python
用python实现k近邻算法的示例代码
Sep 06 Python
python数据处理 根据颜色对图片进行分类的方法
Dec 08 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
Sep 18 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
Mar 03 Python
python实现简易版学生成绩管理系统
Jun 22 Python
Python 高效编程技巧分享
Sep 10 Python
Python Pandas pandas.read_sql函数实例用法
Jun 21 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
使用数据库保存session的方法
2006/10/09 PHP
又一个php 分页类实现代码
2009/12/03 PHP
用PHP实现递归循环每一个目录
2010/08/08 PHP
PHP自动选择 连接本地还是远程数据库
2010/12/02 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
2019/05/21 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
jQuery之网页换肤实现代码
2011/04/30 Javascript
jQuery getJSON()+.ashx 实现分页(改进版)
2013/03/28 Javascript
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
IE浏览器下PNG相关功能
2015/07/05 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
JavaScript中最常用的10种代码简写技巧总结
2017/06/28 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
vue-cli中打包图片路径错误的解决方法
2017/10/26 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
ligerUI的ligerDialog关闭刷新的方法
2019/09/27 Javascript
vue实现跳转接口push 转场动画示例
2019/11/01 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
Python2和Python3中print的用法示例总结
2017/10/25 Python
详解python 注释、变量、类型
2018/08/10 Python
Python定时任务随机时间执行的实现方法
2019/08/14 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
Spring http服务远程调用实现过程解析
2020/06/11 Python
python中time tzset()函数实例用法
2021/02/18 Python
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
HTML5 图片预加载的示例代码
2020/03/25 HTML / CSS
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
Html5调用企业微信的实现
2021/04/16 HTML / CSS