这不是我应该选择 Anaconda 还是 Miniconda 的问题。我两个都想要。
我想要为我的脚本开发安装全功能的 Anaconda(带 Spyder),但随后我想最小化(不带 Spyder)我的应用程序的冻结版本。我正在考虑安装 Miniconda 并安装最小数量的软件包,这些软件包是我的应用程序工作所需的最少数量的软件包(主要是 OpenCV、Numpy 和 PyQT),然后使用 cx_Freeze 创建分发软件包(使用 Inno Setup 构建 Windows安装包)。
是否可以在我的 Windows 机器上同时使用 Anaconda 和 Miniconda 而两者之间没有冲突?如果是这样,有什么我需要知道的技巧吗?
I\xe2\x80\x99m 在 Python 环境中使用 OpenCV 从外部源捕获视频流、显示视频并将视频写入文件。视频流可以来自不同的视频源。我需要使用与传入视频完全相同的帧速率(例如,60 fps、29.97 fps、30 fps 等)编写视频。
\n\n由于流视频没有嵌入流中的帧速率,因此我需要确定正确的帧速率。我尝试过其他人的建议,对一些帧进行采样,然后将捕获的帧数除以经过的时间。对我来说,这会导致帧速率接近,但还不够接近。
\n\n当我使用 VLC 媒体播放器捕获视频时,VLC 正确确定帧速率。
\n\n这是 I\xe2\x80\x99m 当前使用的 Python 脚本。它缓冲 500 帧来计算帧速率,然后开始写入视频,同时继续捕获(有 500 帧延迟)。(VLS 捕获/写入\xe2\x80\x99t 没有明显的延迟。)
\n\n对我来说最重要的是 \xe2\x80\x93 正确确定传入视频流的帧速率。第二个重要性 \xe2\x80\x93 我想在捕获后以最小的延迟编写视频。
\n\n有什么建议么?
\n\nimport numpy as np\nimport cv2\nfrom time import time\n\ncap = cv2.VideoCapture(0)\nframe_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))\nframe_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))\nfourcc = cv2.VideoWriter_fourcc(*\'DIVX\')\nkount = 0\ndelay = 500\nbuffer = []\nstart = time()\nwhile(cap.isOpened()): \n ret, frame = cap.read()\n if ret==True:\n kount += 1\n buffer.append(frame)\n cv2.imshow(\'frame\',frame)\n if kount >= delay:\n if kount …
Run Code Online (Sandbox Code Playgroud) 我正在使用 PyQt5 创建一个应用程序。该应用程序有一个带有多个小部件的主窗口。其中一个小部件是显示视频的 QLabel 对象。当我检查单选按钮时,我想跟踪光标并在将鼠标悬停在视频上时显示光标坐标。
\n\n我创建了一个 MouseTracking 类,我将 QLabel 对象传递给该类window
。我已经通过打印其几何图形来验证是否已将其传递到类中。但我\xe2\x80\x99m 不知何故没有将鼠标跟踪与window
. 这是 MouseTracking 类的代码。我究竟做错了什么?
class MouseTracker(QLabel):\n def __init__(self, window):\n super().__init__(window)\n self.window = window\n self.window.setMouseTracking(True)\n self.initUI()\n\n def initUI(self):\n self.label = QLabel(self)\n self.label.setAlignment(Qt.AlignCenter)\n self.label.setStyleSheet(\'background-color: white; border: 1px solid black\')\n self.show()\n\n def mouseMoveEvent(self, event):\n x = event.x()\n y = event.y()\n print("X, Y = ", x, y)\n self.label.setGeometry(x+30, y-15, 90, 40)\n self.label.setText(\'(%d, %d)\' % (x, y))\n
Run Code Online (Sandbox Code Playgroud)\n 我有 PyQt5 QLabels 随着 QMainWindow 大小的变化而扩展/收缩。当 QMainWindow 的大小调整为其初始尺寸以外的任何值时,我想获取 QLabels 的尺寸。
下面的脚本在 QMainWindow 中创建两个 QLabel。QLabel 展开,但顶部 QLabel 具有固定高度。QMainWindow 的创建尺寸为 400x300,并显示为最大化屏幕showMaximized()
(在我的例子中为 1920 x 1080)。该脚本在 QMainWindow 显示之前和之后打印 QLabels 的尺寸。在显示之前,width()
返回height()
默认的 QLabel 值,在显示之后(屏幕最大化)width()
并height()
返回值,就好像 QMainWindow 的物理尺寸为 400x300 一样。这是打印的 wat:
label_1 Size Before Expanding: 100 100
label_2 Size Before Expanding: 100 30
label_1 Size After Expanding: 378 100
label_2 Size After Expanding: 378 171
Run Code Online (Sandbox Code Playgroud)
当 QMainWindow 最大化时,如何获得 QLabels 的真实尺寸?我是在Windows环境下运行的。
from PyQt5.QtWidgets import QApplication, QMainWindow, QSizePolicy, QLabel, QVBoxLayout, …
Run Code Online (Sandbox Code Playgroud)