Python电梯楼层数字识别

news2025/1/12 23:40:27

程序示例精选
Python电梯楼层数字识别
如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!

前言

这篇博客针对《Python电梯楼层数字识别》编写代码,代码整洁,规则,易读。 学习与应用推荐首选。


运行结果

在这里插入图片描述


文章目录

一、所需工具软件
二、使用步骤
       1. 主要代码
       2. 运行结果
三、在线协助

一、所需工具软件

       1. Python
       2. Pycharm

二、使用步骤

代码如下(示例):

import cv2
import numpy as np
import os

# 读取test中的图片
img1 = cv2.imread('test/3.jpg')
# 定义FLANN匹配器参数
indexParams = dict(algorithm=0, trees=10)
searchParams = dict(checks=50)
# 遍历文件夹中的所有图片
template_folder = 'template'
for template_name in os.listdir(template_folder):
    img2_path = os.path.join(template_folder, template_name)
    img2 = cv2.imread(img2_path)

    # 对当前template图片获取特征点和描述符
    kp2, des2 = sift.detectAndCompute(img2, None)
    matches = sorted(matches, key=lambda x: x[0].distance)

    # 调整ratio,筛选好的匹配点
    good = []
    MATCH_THRESHOLD = 10

    # 检测匹配是否成功
    if len(good) >= MATCH_THRESHOLD:
        # 获取所有好的匹配点在img1中的位置
        src_pts = np.float32([kp1[m[0].queryIdx].pt for m in good]).reshape(-1, 1, 2)
        x, y, w, h = cv2.boundingRect(src_pts)
        cx, cy = x + w / 2, y + h / 2  # 计算中心点
        scale_factor = 2.2  # 扩大比例因子
        new_w = w * scale_factor
        new_h = h * scale_factor
        new_x = int(cx - new_w / 2)
        new_y = int(cy - new_h / 2)
        new_x2 = int(cx + new_w / 2)
        new_y2 = int(cy + new_h / 2)
        cv2.rectangle(img1, (new_x, new_y), (new_x2, new_y2), (255, 255, 0), 22)

        font1 = "Current number:";
        font2 = "pcs";
        font = cv2.FONT_HERSHEY_TRIPLEX  
        template_nameT=template_name.split('.')[0]
        cv2.putText(img1, font1 + str(template_nameT), (10, 118), font, 3.8, (0, 0, 255), 8)  
        cv2.imshow("DetectedPhoto1", img1)
        cv2.waitKey(0)
        cv2.destroyAllWindows()

    else:
        print("No photo matched to "+template_name)


运行结果

在这里插入图片描述

三、在线协助:

如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助!

1)远程安装运行环境,代码调试
2)Visual Studio, Qt, C++, Python编程语言入门指导
3)界面美化
4)软件制作
5)云服务器申请
6)网站制作

当前文章连接:https://blog.csdn.net/alicema1111/article/details/132666851
个人博客主页:https://blog.csdn.net/alicema1111?type=blog
博主所有文章点这里:https://blog.csdn.net/alicema1111?type=blog

博主推荐:
Python人脸识别考勤打卡系统:
https://blog.csdn.net/alicema1111/article/details/133434445
Python果树水果识别:https://blog.csdn.net/alicema1111/article/details/130862842
Python+Yolov8+Deepsort入口人流量统计:https://blog.csdn.net/alicema1111/article/details/130454430
Python+Qt人脸识别门禁管理系统:https://blog.csdn.net/alicema1111/article/details/130353433
Python+Qt指纹录入识别考勤系统:https://blog.csdn.net/alicema1111/article/details/129338432
Python Yolov5火焰烟雾识别源码分享:https://blog.csdn.net/alicema1111/article/details/128420453
Python+Yolov8路面桥梁墙体裂缝识别:https://blog.csdn.net/alicema1111/article/details/133434445

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

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

相关文章

操作系统内功篇:硬件结构之如何写出让CPU执行更快的代码?

一 前言 因为CPU要操作的数据都在CPU Cache中的话,就不用再从内存中读取数据了,这样就提高了效率,访问的数据在CPU Cache中越多,有个专业名词称为缓存命中率高,所以说,缓存命中率越高,自然执行…

Jupyter Notebook出错提示An error occurred while retrieving package information解决办法

出错日志信息: To access the notebook, open this file in a browser:file:///C:/Users/colda/AppData/Roaming/jupyter/runtime/nbserver-14564-open.htmlOr copy and paste one of these URLs:http://localhost:8888/?token3c0113e5da07c0b8b8c9de74ffb453c5047…

在idea中配置tomcat服务器,然后部署一个项日

1.下载tomcat Tomcat下载 点击右边的tomcat8 找到zip点击下载 下载完,解压到你想放置的路径下 2.配置环境变量 打开设置找到高级系统设置点击环境变量 点击新建,变量名输入:CATALINA_HOME,变量值就是Tomcat的安装路径&#x…

机器人阻抗控制中的transparency(透明度)

在机器人控制领域,transparency(透明性)是一个描述机器人在物理交互过程中如何响应外部力或运动的术语。透明性在这里通常意味着机器人的运动和行为对于与其交互的用户或环境来说是直观且可预测的。换句话说,透明性意味着机器人的…

【二分查找详细解析】 【图解】 例题【洛谷P2249 【深基13.例1】查找】

文章目录 二分查找的基础解释例题【洛谷P2249 【深基13.例1】查找】code↓ 二分查找的基础解释 二分的时间复杂度为 O ( l o g n ) O(log n) O(logn),进行二分查找的序列必须满足单调性 我们可以先定义两个值 l , r l,r l,r ,来表示查找到的左端点 l…

接口与多态

通过接口实现多态 接口中声明若干个 bstract方法; 方法体的内容细节由实现接口的类去完成,不同的类有 不同的实现方式 → 则接口变量在回调接口方法时具有多 种形态。 用接口进行程序设计的核心思想 使用接口回调技术:接口变量存放实现该接口…

DP最长上升子序列模型

目录 怪盗基德的滑翔翼代码实现 登山代码实现 合唱队形代码实现 友好城市问题分析代码实现 最大上升子序列和代码实现 *拦截导弹问题分析代码实现扩展 *导弹防御系统问题分析代码实现 *最长公共上升子序列问题分析代码实现 LIS 问题一般有三种解法 朴素版动态规划贪心二分树状…

测试用例要如何写

1、测试点与测试用例 测试点不等于测试用例,这是我们首先需要认识到的。 问题1:这些测试点在内容上有重复,存在冗余。 问题2:一些测试点的测试输入不明确,不知道测试时要测试哪些。 问题3:总是在搭相似…

树与二叉树(数据结构)

本篇博客讲解 树与二叉树,后续会继续讲解堆 —————————————————————— 1.树概念及结构 1.1树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看…

CMAKE_CUDA_ARCHITECTURES set to ‘native’多版本与版本号矛盾问题,报错

CMAKE_CUDA_ARCHITECTURES set to ‘native’多版本与版本号矛盾问题,报错 1. 报错提醒如下图2. 原因本地安装多个cuda版本导致native寻找到多个版本,导致报错3. 具体配置需要根据你的显卡型号来确认 1. 报错提醒如下图 2. 原因本地安装多个cuda版本导致…

Redis - String 字符串

前言 下表中包含本博客提到的所有命令 字符串类型是 Redis 最基础的数据类型,关于字符串需要特别注意: 1)⾸先 Redis 中所有的键(key)的类型都是字符串类型,⽽且其他⼏种数据结构也都是在字符串类似基础上…

ffmpeg 滤镜实现不同采样率多音频混音

音频混音在音视频开发中是十分重要的一个环节,所谓音频混音就是将所有需要混音的数据相加得到混音数据,然后通过某个算法进行非法数据的处理;例如相加数值超过最大值,最小值等! 在实际的音频开发中,要实现混音的流程如下: 因此我们的编码实现就分为五部分:寻找…

中经评论:“人工智能+”不止是加法

以下文章来源:经济日报 今年,“人工智能”首次被写入《政府工作报告》,这个新提法为发展数字经济、推进数实融合指明了新路径。值得注意的是,“人工智能”不是简单相加,而是要通过新技术催生新质生产力,为经…

MyBatisPlus 之三:BaseMapper 详解和 CRUD 案例详解

BaseMapper详解 1. SQL 日志开启 为了更好更快学习 MyBatisPlus ,需要配置 SQL 日志,这样方便我们能随时看到执行过程中使用的 SQL 语句,有助于理解执行原理及方便 SQL 错误调试 mybatis-plus.configuration.log-implorg.apache.ibatis.logg…

Python 多线程大批量处理文件小程序

说明 平时偶尔需要进行重复性的对文件进行重命名、格式转化等。假设以文件复制功能作为目标,设计一个小程序使用多线程对文件进行批量复制。(其实以后主要目标是针对Realsense的raw文件进行批量的转化,并借助多线程加速) 代码 i…

深度学习 精选笔记(12)卷积神经网络-理论基础2

学习参考: 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增),以达到集多方教程的精华于一文的目的。 ③非常推荐上面(学习参考&#x…

修改yolov9的模型打印不出来Gflops的解决办法

正在修改yolov9的模块,发现修改后的模型没有GFlops这个参数 解决办法: 找到utils/torch_utils.py这个文件,有一个model_info函数 然后将其中的stride改为固定的640就可以打印了。 stride max(int(model.stride.max()), 32) if hasattr(mo…

扩展学习|网络问政的价值增量与实现条件:基于数据资源挖掘的视角

文献来源:[1]顾丹丹傅广宛.网络问政的价值增量与实现条件:基于数据资源挖掘的视角[J].中国行政管理, 2021, 000(004):76-82.DOI:10.19735/j.issn.1006-0863.2021.04.11. 一、技术赋能网络问政的机制生成 (一)技术赋能网络问政的流程&#xf…

关于IP-Adapter的十几个模型,到底是干啥用的?

🎠背景介绍 IP-Adapter的一系列模型在stable diffusion的实际应用中,越来越被频繁的使用到,用于“换脸”或者“保证角色的一致性”,但是很多朋友在安装或者使用别人的工作流的时候,经常会遇到各种各样的问题&#xff…

【JavaScript】JavaScript 运算符 ⑤ ( 赋值运算符 | 基础赋值运算符 与 复合赋值运算符 )

文章目录 一、JavaScript 赋值运算符1、赋值运算符 概念2、基础赋值运算符 与 复合赋值运算符3、复合赋值运算符4、完整代码示例 一、JavaScript 赋值运算符 JavaScript 赋值运算符种类 : 基础赋值运算符 : 等于 : ; 复合赋值运算符 : 加等 : 减等 : -乘等 : *除等 : /取模等…