python+opencv实现阈值分割

作者:Ruff_XY 时间:2023-05-19 11:23:50 

最近老师留了几个作业,虽然用opencv很简单一句话就出来了,但是还没用python写过。在官方文档中的tutorial中的threshold里,看到可以创建两个滑动条来选择type和value,决定用python实现一下

注意python中的全局变量,用global声明

开始出现了一些问题,因为毁掉函数每次只能传回一个值,所以每次只能更新value,后来就弄了两个毁掉函数,这个时候,又出现了滑动其中一个,另一个的值就会变为默认值的情况,这个时候猜想是全局变量的问题,根据猜想改动之后果然是。
感觉还有更简单的方法,不需要设置两个回调参数,对python不是很熟悉,时间有限,先不折腾了

python+opencv实现高斯平滑滤波
python+opencv实现霍夫变换检测直线

(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实现阈值分割

来源:https://blog.csdn.net/xieyi4650/article/details/51346798

标签:python,opencv,阈值分割
0
投稿

猜你喜欢

  • Python使用Selenium模拟浏览器自动操作功能

    2021-01-19 07:55:33
  • 100 个 Python 小例子(练习题二)

    2021-02-09 10:15:31
  • Pandas 时间序列分析中的resample函数

    2023-12-06 16:38:33
  • 利用ADODB.Stream使用浏览器下载服务器文件

    2008-10-09 12:42:00
  • MySQL数据库分组查询group by语句详解

    2024-01-28 05:50:31
  • windows 10下安装搭建django1.10.3和Apache2.4的方法

    2022-01-01 01:07:51
  • JavaScript控制flash操作 兼容IE FF[译]

    2009-11-29 16:28:00
  • Python 利用argparse模块实现脚本命令行参数解析

    2022-12-01 16:11:55
  • asp任何取得多个表单的值

    2008-04-15 15:31:00
  • JavaScript的instanceof运算符学习教程

    2024-04-17 10:09:59
  • 如何修改pycharm使用anaconda环境后的pip install安装路径问题

    2021-08-02 19:00:41
  • 微信小程序如何修改本地缓存key中单个数据的详解

    2024-05-09 10:34:57
  • 详情解析TCP与UDP传输协议

    2024-01-02 05:28:57
  • 实际应用:MySQL5存储过程编写

    2008-11-11 12:25:00
  • Django模板标签中url使用详解(url跳转到指定页面)

    2023-12-18 00:09:54
  • Python中集合创建与使用详解

    2022-04-30 05:29:42
  • python实现随机梯度下降(SGD)

    2021-04-15 19:41:20
  • python Crypto模块的安装与使用方法

    2022-09-17 15:19:01
  • Python GUI之tkinter详解

    2021-09-11 06:36:01
  • SSM框架把日志信息保存到数据库过程详解

    2024-01-19 12:56:27
  • asp之家 网络编程 m.aspxhome.com