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实现115网盘自动下载的方法
Sep 30 Python
Python中函数的多种格式和使用实例及小技巧
Apr 13 Python
Python中threading模块join函数用法实例分析
Jun 04 Python
Python实现简易端口扫描器代码实例
Mar 15 Python
python保存数据到本地文件的方法
Jun 23 Python
pandas 数据归一化以及行删除例程的方法
Nov 10 Python
Python实现删除排序数组中重复项的两种方法示例
Jan 31 Python
python实现两个经纬度点之间的距离和方位角的方法
Jul 05 Python
python 解决flask uwsgi 获取不到全局变量的问题
Dec 22 Python
python保留格式汇总各部门excel内容的实现思路
Jun 01 Python
Python 合并拼接字符串的方法
Jul 28 Python
python实现逻辑回归的示例
Oct 09 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
PHP简单字符串过滤方法示例
2016/09/04 PHP
php事件驱动化设计详解
2016/11/10 PHP
php微信开发之百度天气预报
2016/11/18 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
JavaScript利用Date实现简单的倒计时实例
2017/01/12 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
2017/08/16 Javascript
用Axios Element实现全局的请求loading的方法
2018/03/15 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
12步教你理解Python装饰器
2016/02/25 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
python 对txt中每行内容进行批量替换的方法
2018/07/11 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
用canvas做一个DVD待机动画的实现代码
2019/04/12 HTML / CSS
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
技校毕业生自荐信范文
2014/03/07 职场文书
质量月口号
2014/06/20 职场文书
授权收款委托书
2014/09/23 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS