OpenCV实验大师与DeepSeek加持,一个小时学会25个OpenCV工业案例开发

原创 OpenCV学堂 2025-02-27 17:56
图片

点击上方蓝字关注我们

微信公众号:OpenCV学堂

关注获取更多计算机视觉与深度学习知识

前提

首先安装好LM Studio 然后再安装好OpenCV实验大师工具软件,最后查看我的B站【DeepSeek + OpenCV】AI编程系列视频教程:

https://www.bilibili.com/video/BV1kYNUeVEe2/

https://www.bilibili.com/video/BV1ZGNCeHEAS/?

https://www.bilibili.com/video/BV1iAKFeYEt4/?

https://www.bilibili.com/video/BV1gFANeFE3H/?


OpenCV实验大师工具软件相关教程查看这里:

https://www.bilibili.com/video/BV1AXfYYXEcv/?


OpenCV实验大师工具软件下载地址:

https://appetjpz4tj8166.h5.xiaoeknow.com/p/course/ecourse/preview/course_2XtK2sEi7HNUwt2WscP6tFwxpIb?


有了上述两个开发工具以后我们只需要三步,就可以完成多数OpenCV算法开发跟PyQT界面集成应用开发。

OpenCV工作流代码生成

打开安装好的OpenCV实验大师工作流软件,显示如下


然打开【帮助】-》【项目案例】我们选择双击的第十三个模板匹配,然后点击右上角的【运行】按钮,效果如下:


点击工具栏【PDF导出图标】选择导出PDF,最后两页就是生成的Python代码与C++代码



DeepSeek生成PyQT5界面

以DeepSeek Coder Lite的14B 模型为例,直接输入下面的提示词:


使用pyqt5生成三个按钮,一个QLabel的界面,三个按钮在一同行,第一个按钮实现选择本地图像并显示到QLabel中,第二个按钮实现选择本地文本文件并打印文件路径,第三个按钮 名称为 运行,不实现任何功能。QLabel为固定大小800x600,图像按比率放缩居中显示在QLabel上。


生成好的代码如下:

import sysfrom PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QLabel, QFileDialogfrom PyQt5.QtGui import QPixmapfrom PyQt5.QtCore import Qtclass MyWindow(QWidget):    def __init__(self):        super().__init__()        self.initUI()    def initUI(self):        # 设置窗口布局        layout = QVBoxLayout()        # 创建QLabel并设置固定大小        self.label = QLabel()        self.label.setFixedSize(800600)        # 按钮布局        button_layout = QHBoxLayout()        # 第一个按钮:选择本地图像并显示到QLabel中        self.btn1 = QPushButton('选择图像')        self.btn1.clicked.connect(self.load_image)        # 第二个按钮:选择本地文本文件并打印文件路径        self.btn2 = QPushButton('选择文本文件')        self.btn2.clicked.connect(self.select_text_file)        # 第三个按钮:运行,不实现任何功能        self.btn3 = QPushButton('运行')        # 将按钮添加到布局中        button_layout.addWidget(self.btn1)        button_layout.addWidget(self.btn2)        button_layout.addWidget(self.btn3)        # 将QLabel和按钮布局添加到主布局中        layout.addLayout(button_layout)        layout.addWidget(self.label)        self.setLayout(layout)        self.setWindowTitle('图像显示示例')        self.show()    def load_image(self):        # 打开文件对话框选择图片        file_dialog = QFileDialog()        file_path, _ = file_dialog.getOpenFileName(self, '选择图像''''Images (*.png *.xpm *.jpg)')        if file_path:            pixmap = QPixmap(file_path)            # 按比例缩放图片并居中显示            scaled_pixmap = pixmap.scaled(800600, Qt.KeepAspectRatio | Qt.AlignCenter)            self.label.setPixmap(scaled_pixmap)    def select_text_file(self):        # 打开文件对话框选择文本文件        file_dialog = QFileDialog()        file_path, _ = file_dialog.getOpenFileName(self, '选择文本文件''''Text files (*.txt)')        if file_path:            print(f'选择的文本文件路径:{file_path}')if __name__ == '__main__':    app = QApplication(sys.argv)    window = MyWindow()    sys.exit(app.exec_())

直接运行,加载一张图像效果如下:


集成修改与测试运行

修改共有三个地方,第一个地方是修改选择text文件改为把.txt后缀名称改为.vm。第二个地方就是给运行按钮添加一个槽函数,然后在槽函数中添加代码来自OpenCV实验大师工具软件 PDF导出的代码,显示如下:

def run_workflow(self):	persister = VMProjectPersister()	model = ProjectDataModel()	project_type = persister.query_project_type(self.vm_path)	if project_type == 0:		persister.load(model, self.vm_path)		print("exectue opencv workflow here......")		log_txts = persister.silence_run_process(model, self.image_path)		index = 0		result_img = None		for t in model.tasks:			if isinstance(t, ImageProcessTask):				result_img = t.get_output_image()				index += 1		if result_img is not None:			h, w, ch = result_img.shape			bytes_per_line = ch * w			qt_image = QImage(result_img.data, w, h, bytes_per_line, QImage.Format_BGR888)			pixmap = QPixmap.fromImage(qt_image)			self.label.setPixmap(pixmap)


最终测试结果



对比OpenCV实验大师运行结果,发现完全一致。




每个开发者都可以学会的
人工智能应用开发视频课程

原价:398

折扣:299



推荐阅读

OpenCV4.8+YOLOv8对象检测C++推理演示

ZXING+OpenCV打造开源条码检测应用

总结 | OpenCV4 Mat操作全接触

三行代码实现 TensorRT8.6 C++ 深度学习模型部署

实战 | YOLOv8+OpenCV 实现DM码定位检测与解析

对象检测边界框损失 – 从IOU到ProbIOU

YOLOv8 OBB实现自定义旋转对象检测

初学者必看 | 学习深度学习的五个误区

YOLOv8自定义数据集训练实现安全帽检测



图片


OpenCV学堂 专注计算机视觉开发技术分享,技术框架使用,包括OpenCV,Tensorflow,Pytorch教程与案例,相关算法详解,最新CV方向论文,硬核代码干货与代码案例详解!作者在CV工程化方面深度耕耘15年,感谢您的关注!
评论
  • 工业物联网时代,作为一种普遍应用在汽车电子、工业控制与医疗器械等领域中的串行总线通信技术——CAN(Controller Area Network)总线基于消息广播模式,通过双绞线传输差分信号,是一种多主控(Multi-Master)的总线系统,具备极强的抗干扰能力、极低的传输延迟和高速数据传输性能。一种典型的CAN总线网络示意图在CAN总线通信过程中,CAN收发器作为物理层上的接口芯片,位于CAN控制器(MCU)和CAN总线之间,主要负责将来自CAN控制器(MCU)的数字信号与总线上的差分信号
    华普微HOPERF 2025-07-04 14:44 1956浏览
  • 在物联网无线通信领域,随着行业应用场景的不断拓宽,同一频段下的设备通信需求正呈指数级增长,然而这一增长趋势却与频谱资源的有限性形成了鲜明对立,信道拥挤、信号串扰与非线性失真等不良现象所造成的“通信压力”正在持续放大。从智能家居的设备互联到工业物联网的实时控制,从智慧楼宇的广域组网到智慧城市的海量数据传输,有限的频谱资源不仅需要满足不断增长的设备通信需求,还需要适配不同场景对速率、时延与可靠性等差异化要求。在此背景下,如何在有限的频谱资源中实现更为稳定的无线通信质量,已成为物联网行业发展路径中的核
    华普微HOPERF 2025-07-07 16:13 556浏览
  • 现代人对于影音效果的追求持续增加,在多数影音产品中,HDMI是最为重要的接口,而HDMI 2.1中有一新增功能eARC可以透过HDMI线材来传输数字Audio,除了支持Dolby TrueHD、Atoms等声音格式外,也可以支持8声道喇叭,满足消费者对于声音的追求。新时代的高阶电视都具备支援eARC的功能,然而却有些号称支持的电视产品,因为在设计上的疏忽,造成eARC无法输出8声道Audio,以致eARC的功能大打折扣,对于花大钱欲享受高规格电视的消费者来说自然难以接受,对于该电视品牌也会产生负
    百佳泰测试实验室 2025-07-04 14:42 2017浏览
  • 在数字化、自动化高速发展的今天,光电耦合器正以一种低调却不可或缺的方式,悄然改变着我们的生活。它不仅是电子电路中的“安全卫士”,更是连接信号世界的“桥梁”,凭借出色的电气隔离能力,为各类设备提供稳定可靠的信号传输保障。电气隔离——让系统更安全在工业控制系统中,安全始终是重中之重。光电耦合器通过光信号进行电气隔离,能够有效防止高压电流侵入低压控制电路。例如,在智能电网系统中,它广泛应用于电表与通信模块之间,确保数据传输的安全性,防止电网高压对低压设备造成冲击。在电动汽车的电池管理系统(BMS)中,
    腾恩科技-彭工 2025-07-05 13:56 446浏览
  • 曾经靠“砍一刀”撕裂传统电商格局的拼多多,如今疲态尽显。数据显示,拼多多今年第一季度实现营收957亿元,同比增长10%,市场预估1016亿元,相比预期低了近60亿元;经营利润为161亿元,相比去年同期下降38%;归属于普通股股东的净利润为147亿元,同比下降47%。与此同时,拼多多市值也坐上了“过山车”。去年市值一度突破 2180 亿美元,力压国内电商巨头阿里,今年(7月1日收盘)市值仅余 1497.59 亿美元,已不足阿里(市值2718.63亿美元)一半
    用户1742991715177 2025-07-05 14:24 410浏览
  • 本文主要针对分立方案高速输出电路,由于MOS管、稳压管、PCB布局布线都存在一些寄生电容,这些寄生电容都会影响高速输出电路的占空比,所以本文对这些寄生电容的影响进行简单说明。测试工况:电压:24V,负载类型:阻性负载2K,输出频率:200Khz,要求占空比45%~55%;电路拓扑如下图所示:图1寄生电容分布情况:如下图所示,MOS管寄生电容为Cgd、Cgs、Cds,稳压管寄生电容为Cd;图2而MOS管手册常见的参数如下图所示为Ciss、Coss、Crss(为啥是这些参数,而不改成Cgs、Cgd、
    用户1751282873645 2025-07-08 23:58 193浏览
  • 在全球广泛倡导绿色低碳与可持续发展的时代浪潮中,新能源汽车作为实现节能减排的重要载体之一,正受到各国政府与企业的加速培育。在此背景下,为提升新能源汽车的市场渗透率,我国已率先进入充电基础设施建设的加速期,从私人专用充电桩到社区公用充电桩,从高速路网补能节点到城市公用充电桩,汽车补能网络正在急速膨胀中。图源:摄图网(已授权)据中国充电联盟(EVCIPA)最新统计数据显示,截止2025年5月份,我国充电基础设施累计数量为1440万台,同比上升45.1%。其中,在2025年1月~5月期间,我国充电基础
    华普微HOPERF 2025-07-09 16:13 266浏览
  • 据知名市场研究机构Counterpoint Research发布的数据概览,2025年第二季度,中国智能手机销量预计将迎来小幅回暖,增长率约为1%。在这场销量微增的背后,华为与苹果两大品牌成为了推动市场前行的核心力量。其中华为手机的表现最为亮眼,数据显示,华为在中国市场的智能手机销量份额实现了12%的同比增长,这一成绩不仅使其成为了当季增长最快的品牌,更助力华为重新夺回销量榜首的位置。相比之下,vivo的表现就有些尴尬了。虽然还是位列第二,但vivo在第二季度的智能手机销量份额同比下降了9%,下
    用户1742991715177 2025-07-09 08:19 216浏览
  • 什么是LoRaWAN? LoRaWAN技术及应用LoRaWAN(Long Range Wide Area Network)是一种低功耗、长距离、广域网络通信协议,特别设计用于连接物联网(IoT)设备。LoRaWAN采用无线通信技术,能够覆盖数十公里的范围,提供长时间的电池寿命,适用于智能城市、农业、工业自动化、环境监测,与健康医疗等领域应用。来源: LoRa Alliance一探究竟:LoRaWAN物联网应用优势营运商采用 LoRaWAN 具有多方面的优势,除了长距离覆盖范围及低功耗的特点外,还
    百佳泰测试实验室 2025-07-10 14:51 272浏览
  • 提要:采用LOXIM的微孔雾化专用芯片LX8201,能突破压电陶瓷驱动电压超标(24伏)的技术难题,满足全球市场对喷雾玩具的电压安规认证要求。玩具行业尤其是喷雾玩具行业内人士都知道,喷雾玩具的压电陶瓷驱动电压超标(常需60-100V)与强制安规标准(中国,日本,欧美,都一样)对玩具电压的限制(≤24V)存在根本性冲突,如果采用“多层压电堆叠(MPA)技术“(比如日本TDK公司),成本将增加至现有微孔雾化片的10倍以上,这个矛盾一直没有得到好的解决。喷雾玩具在国内热销(淘宝/抖音),能卖的原因,无
    Loximonline 2025-07-08 10:55 262浏览
  •   去年底,整理旧物,扔的扔了,留的留了,这不,十四个几十年前留下来的工业级小型排风扇,下图左上角处,又拿出来,下决心把它们再利用发挥余热。  呵呵,这回不是拆而是装了。怎么装呢?组装、固定、机架、接线,简单,也不简单,原则是一切都用手头现有废旧材料,争取做到一个不买!DIY,废物利用,如今时髦的话,以旧换新!摆上台面,找来木条,策划怎么做?  比一比,看一看,觉得合适,按尺寸锯开木条。  咋走线?想到了,在有限空间内弯转,从一个螺丝孔穿出来,整体拼凑整齐。   咋固定风扇呢?找来木片条,锯断,
    自做自受 2025-07-06 21:37 521浏览
  •   几个月前,一个老旧的大风扇的散风圈(俺不知其专业名称)的开关按钮不起作用,就是锁不住了,散风圈也就不转了。今天,有空,就拿到工作台,开始拆解分析故障原因,能修好更好。  看看,用的时间够长了吧!皮肤都变颜色了。看标签,合格品2005年的。  底部四个螺丝固定,很容易拆开了。  看到掉下一个标签圆纸片,拿起来看看,是那个横向摇头的电机的。  找到那个按钮开关位置  应该是开关内部的有缺陷了。把它拆下来,一看就是正规合格品。  拿出我日积月累的分类藏宝盒,呵呵,找到一款螺丝孔位正好合适的。   
    自做自受 2025-07-10 11:16 293浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦