python OpenCV的使用

news/2024/5/3 12:07:05

 

使用 cv2.adaptiveThreshold 和 cv2.createTrackbar

# %% todo: 使用 cv2.adaptiveThreshold 和 cv2.createTrackbar
# ==============================================================================
import cv2
import numpy as np# 新建一个窗口
cv2.namedWindow('img', cv2.WINDOW_NORMAL)   # 可调整窗口大小
cv2.resizeWindow("img", 800, 800)   # 设置窗口的大小# 滑动条从0开始,为了使用特定的数值,采用数组和序号的方式。
adaptiveMethods_i = 0
adaptiveMethods = [cv2.ADAPTIVE_THRESH_MEAN_C, cv2.ADAPTIVE_THRESH_GAUSSIAN_C]thresholdType_i = 0
thresholdTypes = [cv2.THRESH_BINARY, cv2.THRESH_BINARY_INV]blockSize_i = 0
blockSizes = range(3, 100, 2)c_i = 0
cs = range(-4, 4)imgGray2 = cv2.imread(r"E:\Testwork\imgGray2.bmp", cv2.IMREAD_GRAYSCALE)
imgBin = cv2.adaptiveThreshold(imgGray2, 255, adaptiveMethods[adaptiveMethods_i],thresholdTypes[thresholdType_i], blockSizes[blockSize_i], cs[c_i],)flag = 0    # 为了滑动一次,只显示一次滑动结果
def noting(x):# 拖动滑动条,cv2.getTrackbarPos 的回调函数不能获得滑动后的位置,只能使用上次的位置。# print(f'{adaptiveMethods_i:3d}  {thresholdType_i:3d}  {blockSizes[blockSize_i]:3d} {cs[c_i]}')global flag     # 设置成全局变量flag = 1cv2.createTrackbar('adaptiveMethods_i', 'img', 0, 1, noting)
cv2.createTrackbar('thresholdType_i', 'img', 0, 1, noting)
cv2.createTrackbar('blockSize_i', 'img', 0, len(blockSizes)-1, noting)
cv2.createTrackbar('c', 'img', 0, len(cs)-1, noting)while 1:cv2.imshow('img', imgBin)adaptiveMethods_i = cv2.getTrackbarPos('adaptiveMethods_i', 'img')thresholdType_i = cv2.getTrackbarPos('thresholdType_i', 'img')blockSize_i = cv2.getTrackbarPos('blockSize_i', 'img',)c_i = cv2.getTrackbarPos('c', 'img',)imgBin = cv2.adaptiveThreshold(imgGray2, 255, adaptiveMethods[adaptiveMethods_i],thresholdTypes[thresholdType_i], blockSizes[blockSize_i], cs[c_i], )if flag == 1:    # 为了滑动一次,只显示一次滑动结果print(f'{adaptiveMethods_i:3d}  {thresholdType_i:3d}  {blockSizes[blockSize_i]:3d} {cs[c_i]}')flag = 0if cv2.waitKey(1) == ord('q'):breakcv2.destroyAllWindows()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/11270.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Git常用指令使用

摘要:之前代码管理都是借助于fork、sourceTree等图形工具,最近发现直接用命令也好用,就总结Git常用的指令 1、Git的介绍 1.1 git官网 安装: Git - Downloading Packagehttps://git-scm.com/download/mac Mac上安装,直接使…

启扬RK3568核心板助力智慧步道轻装健身,打造全民健康生活新方式

随着物联网、AI智能等新技术的快速发展,智慧步道成为全国各地公园建设和全民健身公共服务设施改造的新主题。智慧步道基于物联网、人脸识别、大数据分析等技术,对人们的运动进行监测和数据采集,显示运动数据,包括里程统计、热量消…

钉钉服务端API报错 错误描述: robot 不存在;解决方案:请确认 robotCode 是否正确

problem 调用钉钉服务端API,机器人发送群聊消息,后台返回报错信息: 钉钉服务端API报错 错误描述: robot 不存在;解决方案:请确认 robotCode 是否正确; reason 定位: 登录后台,查看机器人是存在查看机器人调用权限接…

jupyter lab使用虚拟环境

python -m ipykernel install --name 虚拟环境名 --display-name 虚拟环境名然后再启动jupyter lab就行了

缓冲区溢出漏洞学习总结(漏洞原理及其利用方法)

文章目录 前言1、缓冲区溢出漏洞概述1.1、漏洞概述1.2、缓冲区溢出漏洞概述1.3、缓冲区溢出攻击概述1.4、引发缓冲区溢出的原因 2、栈溢出漏洞2.1、栈溢出漏洞概述2.2、栈溢出漏洞利用2.2.1、利用方法一:修改返回地址2.2.2、利用方法二:覆盖临接变量 3、…

uinapp触底与下拉时间触发的使用

在UniApp中&#xff0c;onReachBottom 和 onPullDownRefresh 是两个重要的生命周期函数&#xff0c;分别用于处理页面滚动到底部时触发的事件和下拉刷新时触发的事件。 在页面的 .vue 文件中&#xff1a; <template> <view> <scroll-view scroll-y"tr…