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文件右键找不到IDLE打开项解决办法
Jun 08 Python
使用python加密自己的密码
Aug 04 Python
总结python实现父类调用两种方法的不同
Jan 15 Python
Python自动生产表情包
Mar 17 Python
flask中使用蓝图将路由分开写在不同文件实例解析
Jan 19 Python
python实现冒泡排序算法的两种方法
Mar 10 Python
python sorted函数的小练习及解答
Sep 18 Python
python3获取文件中url内容并下载代码实例
Dec 27 Python
Python面向对象之继承原理与用法案例分析
Dec 31 Python
matlab灰度图像调整及imadjust函数的用法详解
Feb 27 Python
pycharm 关闭search everywhere的解决操作
Jan 15 Python
整理Python中常用的conda命令操作
Jun 15 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
一个显示天气预报的程序
2006/10/09 PHP
php上传、管理照片示例
2006/10/09 PHP
PHP HTML代码串截取代码
2008/12/29 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
php采用file_get_contents代替使用curl实例
2014/11/07 PHP
php实现将base64格式图片保存在指定目录的方法
2016/10/13 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
PHP实现的日历功能示例
2018/09/01 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
Google 静态地图API实现代码
2010/11/19 Javascript
如何确保JavaScript的执行顺序 之实战篇
2011/03/03 Javascript
关于vue.js v-bind 的一些理解和思考
2017/06/06 Javascript
js如何获取访问IP、地区、当前操作浏览器
2019/07/23 Javascript
微信小程序自定义单项选择器样式
2019/07/25 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
Python自定义简单图轴简单实例
2018/01/08 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
python speech模块的使用方法
2020/09/09 Python
python 装饰器的基本使用
2021/01/13 Python
教师师德教育的自我评价
2013/10/31 职场文书
城市精细化管理实施方案
2014/03/04 职场文书
竞选班长自荐书范文
2014/03/09 职场文书
人力资源管理专业求职信
2014/07/23 职场文书
网络营销计划书
2015/01/17 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
如何写好开幕词?
2019/06/24 职场文书
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery
vue中的可拖拽宽度div的实现示例
2022/04/08 Vue.js
MySQL 字符集 character
2022/05/04 MySQL