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获得图片base64编码示例
Jan 16 Python
python人人网登录应用实例
Sep 26 Python
Python使用win32com实现的模拟浏览器功能示例
Jul 13 Python
Python 实现简单的shell sed替换功能(实例讲解)
Sep 29 Python
python实现远程通过网络邮件控制计算机重启或关机
Feb 22 Python
Python快速查找list中相同部分的方法
Jun 27 Python
python调用百度语音识别实现大音频文件语音识别功能
Aug 30 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
Dec 24 Python
Python Flask 搭建微信小程序后台详解
May 06 Python
Python爬虫爬取电影票房数据及图表展示操作示例
Mar 27 Python
python快速安装OpenCV的步骤记录
Feb 22 Python
Python+Selenium实现读取网易邮箱验证码
Mar 13 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
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
在WordPress中获取数据库字段内容和添加主题设置菜单
2016/01/11 PHP
php 实现进制相互转换
2016/04/07 PHP
JS location几个方法小姐
2008/07/09 Javascript
JavaScript this 深入理解
2009/07/30 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
jquery radio 操作代码
2011/03/16 Javascript
今天是星期几的4种JS代码写法
2013/09/17 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
Javascript核心读书有感之语句
2015/02/11 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
jQuery时间轴插件使用详解
2015/07/16 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
vue2.0实现分页组件的实例代码
2017/06/22 Javascript
不使用 JS 匿名函数理由
2017/11/17 Javascript
解决vue+webpack打包路径的问题
2018/03/06 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
详解Vue依赖收集引发的问题
2019/04/22 Javascript
vue.js 打包时出现空白页和路径错误问题及解决方法
2019/06/26 Javascript
js实现电灯开关效果
2021/01/19 Javascript
Python解析网页源代码中的115网盘链接实例
2014/09/30 Python
python使用turtle库绘制时钟
2020/03/25 Python
Windows下Python3.6安装第三方模块的方法
2018/11/22 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
俄罗斯第一家篮球店:StreetBall
2020/07/30 全球购物
竞选大队委员演讲稿
2014/04/28 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
python 批量压缩图片的脚本
2021/06/02 Python
vue数据字典取键值项目的字典问题
2022/04/12 Vue.js