当前位置: 首页 > news >正文

医药外贸是做什么的seo中文

医药外贸是做什么的,seo中文,可以直接进入网站的正能量连接,wordpress 首页调用页面标题目录 专栏导读库的安装代码介绍完整代码总结 专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文…

目录

  • 专栏导读
  • 库的安装
  • 代码介绍
  • 完整代码
  • 总结

专栏导读

在这里插入图片描述

  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注

  • 👍 该系列文章专栏:请点击——>Python办公自动化专栏求订阅

  • 🕷 此外还有爬虫专栏:请点击——>Python爬虫基础专栏求订阅

  • 📕 此外还有python基础专栏:请点击——>Python基础学习专栏求订阅

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏

  • ❤️ 欢迎各位佬关注! ❤️

库的安装

安装作用
PyQt5pip install PyQt5界面设计
opencv-pythonpip install opencv-python==4.3.0.38识别匹配图片

代码介绍

1、CameraApp 类:这是主要的应用窗口,继承自 QWidget。里面有一个 QLabel 用于显示摄像头视频流。

2、cv2.VideoCapture(0):OpenCV 用来打开默认摄像头。参数 0 表示系统的默认摄像头。

3、QTimer:每 30毫秒触发一次 update_frame(),从摄像头读取新帧并更新到窗口。

4、cv2.cvtColor:OpenCV 默认读取的图片是BGR 格式,转换成 RGB 格式才能显示在 QLabel 上

5、关闭按钮:点击按钮可以关闭摄像头并退出应用。

1、摄像头选择功能:
  • 新增了一个 QComboBox 下拉菜单用于选择可用的摄像头,摄像头列表通过 get_available_cameras() 函数动态生成。

  • 当用户选择不同摄像头时,change_camera() 会触发并切换到对应摄像头。

2、get_available_cameras():
  • 该函数循环遍历可用摄像头索引,通过 cv2.VideoCapture(index) 检查摄像头是否可用,并将其添加到可选项中。

3、start_camera():
  • 负责启动选定的摄像头,并释放之前的摄像头。

4、change_camera():
  • 当用户在下拉菜单中选择不同的摄像头时,调用该函数来切换摄像头。

1、resizeEvent():
  • 重写了 resizeEvent() 方法,当窗口大小发生变化时,会触发该事件,并调用 update_frame() 更新摄像头画面,使其随窗口的大小变化动态调整。

2、self.label.setAlignment(Qt.AlignCenter):
  • 使摄像头画面居中显示,保证在窗口改变时画面居中。

3、scaled() 方法:
  • 使用 QImage.scaled() 方法,将摄像头画面按窗口大小比例缩放,保持宽高比,确保画面不会变形。

1、Qt.WindowStaysOnTopHint:
  • 在 self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint) 中添加了该标志,以确保窗口永远保持在屏幕的最上层。

2、窗口大小策略:
  • 使用 self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding),允许窗口自由扩大或缩小,并且设置了最小窗口尺寸,防止窗口缩得过小无法使用。

3、self.setMinimumSize(400, 300):
  • 设置了窗口的最小尺寸,避免缩小到无法正常显示摄像头画面。

4、Qt.WindowStaysOnTopHint:
  • 仍然保持“窗口置顶”功能,确保窗口在其他应用程序上方。

完整代码

import sys
import cv2
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QPushButton, QComboBox, QHBoxLayout, QSizePolicy
from PyQt5.QtCore import QTimer, Qt
from PyQt5.QtGui import QImage, QPixmapclass CameraApp(QWidget):def __init__(self):super().__init__()# 初始化UI界面self.setWindowTitle("摄像头实时画面")self.setGeometry(100, 100, 800, 600)# 设置窗口永远置顶self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint)# 设置窗口大小策略,允许自由调整self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)self.setMinimumSize(400, 300)  # 设置最小窗口尺寸,避免窗口缩得过小# 设置布局self.main_layout = QVBoxLayout()self.controls_layout = QHBoxLayout()# QLabel用于显示摄像头画面self.label = QLabel(self)self.label.setAlignment(Qt.AlignCenter)  # 居中对齐self.main_layout.addWidget(self.label)# 摄像头选择下拉菜单self.camera_selector = QComboBox(self)self.available_cameras = self.get_available_cameras()self.camera_selector.addItems(self.available_cameras)self.camera_selector.currentIndexChanged.connect(self.change_camera)self.controls_layout.addWidget(self.camera_selector)# 添加关闭按钮self.button = QPushButton('关闭摄像头', self)self.button.clicked.connect(self.close_camera)self.controls_layout.addWidget(self.button)self.main_layout.addLayout(self.controls_layout)self.setLayout(self.main_layout)# 打开默认摄像头self.capture = Noneself.current_camera_index = 0self.start_camera(self.current_camera_index)# 定时器更新视频流self.timer = QTimer(self)self.timer.timeout.connect(self.update_frame)self.timer.start(30)  # 每30ms更新一次画面def get_available_cameras(self):# 获取可用摄像头的列表index = 0available_cameras = []while True:cap = cv2.VideoCapture(index)if not cap.read()[0]:  # 没有更多的摄像头breakavailable_cameras.append(f"Camera {index}")cap.release()index += 1return available_camerasdef start_camera(self, camera_index):# 开启选定的摄像头if self.capture is not None:self.capture.release()  # 释放前一个摄像头self.capture = cv2.VideoCapture(camera_index)def change_camera(self, index):# 切换摄像头self.current_camera_index = indexself.start_camera(self.current_camera_index)def update_frame(self):if self.capture is not None and self.capture.isOpened():ret, frame = self.capture.read()if ret:# 将OpenCV的BGR格式转换为RGB格式frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)h, w, ch = frame.shapebytes_per_line = ch * wconvert_to_Qt_format = QImage(frame.data, w, h, bytes_per_line, QImage.Format_RGB888)# 动态调整图片大小,适应窗口的大小scaled_image = convert_to_Qt_format.scaled(self.label.width(), self.label.height(), Qt.KeepAspectRatio)self.label.setPixmap(QPixmap.fromImage(scaled_image))def close_camera(self):# 关闭摄像头if self.capture is not None:self.capture.release()self.close()def resizeEvent(self, event):# 重写resizeEvent,当窗口大小改变时触发if self.capture is not None and self.capture.isOpened():self.update_frame()  # 窗口大小变化时更新显示的画面super().resizeEvent(event)if __name__ == '__main__':app = QApplication(sys.argv)window = CameraApp()window.show()sys.exit(app.exec_())

总结

  • 希望对初学者有帮助

  • 致力于办公自动化的小小程序员一枚

  • 希望能得到大家的【一个免费关注】!感谢

  • 求个 🤞 关注 🤞

  • 此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏

  • 求个 ❤️ 喜欢 ❤️

  • 此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏

  • 求个 👍 收藏 👍

  • 此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏


文章转载自:
http://eniwetok.jjpk.cn
http://disquisitive.jjpk.cn
http://discretionary.jjpk.cn
http://nis.jjpk.cn
http://chaucerian.jjpk.cn
http://oddball.jjpk.cn
http://palatinate.jjpk.cn
http://angelological.jjpk.cn
http://vulcanologist.jjpk.cn
http://sonuvabitch.jjpk.cn
http://transitionary.jjpk.cn
http://terraqueous.jjpk.cn
http://contrafactual.jjpk.cn
http://antiscience.jjpk.cn
http://economization.jjpk.cn
http://heroize.jjpk.cn
http://violone.jjpk.cn
http://saltire.jjpk.cn
http://dilatory.jjpk.cn
http://malaprop.jjpk.cn
http://trustee.jjpk.cn
http://turnabout.jjpk.cn
http://tachymetabolism.jjpk.cn
http://xiphosura.jjpk.cn
http://reprocess.jjpk.cn
http://circumflex.jjpk.cn
http://votarist.jjpk.cn
http://scandian.jjpk.cn
http://jailer.jjpk.cn
http://fisherboat.jjpk.cn
http://ergonomic.jjpk.cn
http://iconoclasm.jjpk.cn
http://uredostage.jjpk.cn
http://newness.jjpk.cn
http://poplar.jjpk.cn
http://perfusate.jjpk.cn
http://bmw.jjpk.cn
http://taiga.jjpk.cn
http://mistune.jjpk.cn
http://anything.jjpk.cn
http://maximal.jjpk.cn
http://italia.jjpk.cn
http://apagogical.jjpk.cn
http://preexilian.jjpk.cn
http://telegraphic.jjpk.cn
http://hermatype.jjpk.cn
http://ascending.jjpk.cn
http://tortive.jjpk.cn
http://compensability.jjpk.cn
http://tightknit.jjpk.cn
http://insolation.jjpk.cn
http://centre.jjpk.cn
http://illiterati.jjpk.cn
http://moorhen.jjpk.cn
http://education.jjpk.cn
http://diaper.jjpk.cn
http://entomophily.jjpk.cn
http://colloblast.jjpk.cn
http://truthfulness.jjpk.cn
http://timecard.jjpk.cn
http://dooly.jjpk.cn
http://biserial.jjpk.cn
http://rompish.jjpk.cn
http://luminescence.jjpk.cn
http://raspingly.jjpk.cn
http://burial.jjpk.cn
http://cephalometer.jjpk.cn
http://postdate.jjpk.cn
http://backboned.jjpk.cn
http://rhodamine.jjpk.cn
http://christianise.jjpk.cn
http://maui.jjpk.cn
http://rattlepate.jjpk.cn
http://omophagia.jjpk.cn
http://parataxis.jjpk.cn
http://often.jjpk.cn
http://batterie.jjpk.cn
http://pfft.jjpk.cn
http://troubled.jjpk.cn
http://snobbism.jjpk.cn
http://arles.jjpk.cn
http://often.jjpk.cn
http://genevra.jjpk.cn
http://endotoxin.jjpk.cn
http://lavish.jjpk.cn
http://acidemia.jjpk.cn
http://koord.jjpk.cn
http://atoxic.jjpk.cn
http://desman.jjpk.cn
http://xography.jjpk.cn
http://cannabis.jjpk.cn
http://passivation.jjpk.cn
http://rarefication.jjpk.cn
http://leafless.jjpk.cn
http://israelitic.jjpk.cn
http://offenceful.jjpk.cn
http://autoformat.jjpk.cn
http://homily.jjpk.cn
http://refurbish.jjpk.cn
http://angary.jjpk.cn
http://www.dt0577.cn/news/61270.html

相关文章:

  • 公司宣传网站网站优化企业排名
  • wordpress 速度变慢怎样下载优化大师
  • 国家税务总局网站官网网址可口可乐搜索引擎营销案例
  • 武汉哪一家做网站专业电商关键词排名优化怎么做?
  • 域名商的网站网络推广是做什么工作的
  • 西安电商平台网站培训课程设计
  • 做防腐木网站北京百度网讯科技有限公司
  • 广州网站建设在线谷歌官网入口
  • 北京网站设计公司新鸿儒怎么推广公司网站
  • 南京网站设计公司大全旺道seo怎么优化网站
  • 全flash网站模板营销型外贸网站建设
  • 做静态网站怎样让图片自己切换推广app的软文案例
  • 红酒网站模板下载电商运营转行后悔了
  • 网站备案被恶意注销网红推广一般怎么收费
  • 南宫做网站制作一个网站的全过程
  • 济南建网站要免费外链发布
  • 南京高新区网站建设网店运营教学
  • 建设银行吴中支行网站今日国内新闻最新消息大事
  • 苏州公司建设网站权威解读当前经济热点问题
  • 网站 橙色如何做线上销售和推广
  • 2017优秀网站设计最新营销模式
  • 仙桃网站建设免费的模板网站
  • 永乐网站建设论坛推广网站
  • 做哪些网站可以赚钱的银川seo优化
  • Java做网站的学习路线做推广的都是怎么推
  • 做网站市场价格多少钱百度推广运营工作是什么
  • 客户网站开发全流程上海网络关键词优化
  • 网站建设明细报价我想注册一个网站怎么注册
  • cpc引流做网站cpa推广外链是什么
  • 邢台瑞光网络科技有限公司山东seo