小编sla*_*hip的帖子

安装 Anaconda 和 Miniconda

这不是我应该选择 Anaconda 还是 Miniconda 的问题。我两个都想要。

我想要为我的脚本开发安装全功能的 Anaconda(带 Spyder),但随后我想最小化(不带 Spyder)我的应用程序的冻结版本。我正在考虑安装 Miniconda 并安装最小数量的软件包,这些软件包是我的应用程序工作所需的最少数量的软件包(主要是 OpenCV、Numpy 和 PyQT),然后使用 cx_Freeze 创建分发软件包(使用 Inno Setup 构建 Windows安装包)。

是否可以在我的 Windows 机器上同时使用 Anaconda 和 Miniconda 而两者之间没有冲突?如果是这样,有什么我需要知道的技巧吗?

installation anaconda miniconda

11
推荐指数
0
解决办法
7995
查看次数

Python 和 OpenCV - 确定捕获的流视频的正确帧速率

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\n
import 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)

python video opencv video-capture capture

5
推荐指数
0
解决办法
2426
查看次数

PyQt5 通过 QLabel 对象进行鼠标跟踪

我正在使用 PyQt5 创建一个应用程序。该应用程序有一个带有多个小部件的主窗口。其中一个小部件是显示视频的 QLabel 对象。当我检查单选按钮时,我想跟踪光标并在将鼠标悬停在视频上时显示光标坐标。

\n\n

我创建了一个 MouseTracking 类,我将 QLabel 对象传递给该类window。我已经通过打印其几何图形来验证是否已将其传递到类中。但我\xe2\x80\x99m 不知何故没有将鼠标跟踪与window. 这是 MouseTracking 类的代码。我究竟做错了什么?

\n\n
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

python events event-tracking qlabel pyqt5

4
推荐指数
1
解决办法
2870
查看次数

PyQt5:如何获取显示小部件的尺寸

我有 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)

dimensions qwidget qlabel pyqt5 pyside2

1
推荐指数
1
解决办法
3066
查看次数