init and video convert nox
This commit is contained in:
parent
9c6e764d64
commit
f58a6a1866
3
.gitignore
vendored
3
.gitignore
vendored
@ -138,3 +138,6 @@ dmypy.json
|
||||
# Cython debug symbols
|
||||
cython_debug/
|
||||
|
||||
# temp and raw
|
||||
temp/
|
||||
raw/
|
1
.pdm-python
Normal file
1
.pdm-python
Normal file
@ -0,0 +1 @@
|
||||
D:/Code/Python/ESD_bleeding_view_tool/.venv/Scripts/python.exe
|
123
pdm.lock
generated
Normal file
123
pdm.lock
generated
Normal file
@ -0,0 +1,123 @@
|
||||
# This file is @generated by PDM.
|
||||
# It is not intended for manual editing.
|
||||
|
||||
[metadata]
|
||||
groups = ["default"]
|
||||
strategy = ["inherit_metadata"]
|
||||
lock_version = "4.5.0"
|
||||
content_hash = "sha256:22e7fb6be688755243be4decdc34c7a192d0929d9c4e6e62980ee8a44a8f2bc1"
|
||||
|
||||
[[metadata.targets]]
|
||||
requires_python = "==3.12.*"
|
||||
|
||||
[[package]]
|
||||
name = "numpy"
|
||||
version = "2.1.1"
|
||||
requires_python = ">=3.10"
|
||||
summary = "Fundamental package for array computing in Python"
|
||||
groups = ["default"]
|
||||
files = [
|
||||
{file = "numpy-2.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7c803b7934a7f59563db459292e6aa078bb38b7ab1446ca38dd138646a38203e"},
|
||||
{file = "numpy-2.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6435c48250c12f001920f0751fe50c0348f5f240852cfddc5e2f97e007544cbe"},
|
||||
{file = "numpy-2.1.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:3269c9eb8745e8d975980b3a7411a98976824e1fdef11f0aacf76147f662b15f"},
|
||||
{file = "numpy-2.1.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:fac6e277a41163d27dfab5f4ec1f7a83fac94e170665a4a50191b545721c6521"},
|
||||
{file = "numpy-2.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcd8f556cdc8cfe35e70efb92463082b7f43dd7e547eb071ffc36abc0ca4699b"},
|
||||
{file = "numpy-2.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b9cd92c8f8e7b313b80e93cedc12c0112088541dcedd9197b5dee3738c1201"},
|
||||
{file = "numpy-2.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:afd9c680df4de71cd58582b51e88a61feed4abcc7530bcd3d48483f20fc76f2a"},
|
||||
{file = "numpy-2.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8661c94e3aad18e1ea17a11f60f843a4933ccaf1a25a7c6a9182af70610b2313"},
|
||||
{file = "numpy-2.1.1-cp312-cp312-win32.whl", hash = "sha256:950802d17a33c07cba7fd7c3dcfa7d64705509206be1606f196d179e539111ed"},
|
||||
{file = "numpy-2.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:3fc5eabfc720db95d68e6646e88f8b399bfedd235994016351b1d9e062c4b270"},
|
||||
{file = "numpy-2.1.1.tar.gz", hash = "sha256:d0cf7d55b1051387807405b3898efafa862997b4cba8aa5dbe657be794afeafd"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "opencv-python"
|
||||
version = "4.10.0.84"
|
||||
requires_python = ">=3.6"
|
||||
summary = "Wrapper package for OpenCV python bindings."
|
||||
groups = ["default"]
|
||||
dependencies = [
|
||||
"numpy>=1.13.3; python_version < \"3.7\"",
|
||||
"numpy>=1.17.0; python_version >= \"3.7\"",
|
||||
"numpy>=1.17.3; python_version >= \"3.8\"",
|
||||
"numpy>=1.19.3; python_version >= \"3.6\" and platform_system == \"Linux\" and platform_machine == \"aarch64\"",
|
||||
"numpy>=1.19.3; python_version >= \"3.9\"",
|
||||
"numpy>=1.21.0; python_version <= \"3.9\" and platform_system == \"Darwin\" and platform_machine == \"arm64\"",
|
||||
"numpy>=1.21.2; python_version >= \"3.10\"",
|
||||
"numpy>=1.21.4; python_version >= \"3.10\" and platform_system == \"Darwin\"",
|
||||
"numpy>=1.23.5; python_version >= \"3.11\"",
|
||||
"numpy>=1.26.0; python_version >= \"3.12\"",
|
||||
]
|
||||
files = [
|
||||
{file = "opencv-python-4.10.0.84.tar.gz", hash = "sha256:72d234e4582e9658ffea8e9cae5b63d488ad06994ef12d81dc303b17472f3526"},
|
||||
{file = "opencv_python-4.10.0.84-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:fc182f8f4cda51b45f01c64e4cbedfc2f00aff799debebc305d8d0210c43f251"},
|
||||
{file = "opencv_python-4.10.0.84-cp37-abi3-macosx_12_0_x86_64.whl", hash = "sha256:71e575744f1d23f79741450254660442785f45a0797212852ee5199ef12eed98"},
|
||||
{file = "opencv_python-4.10.0.84-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09a332b50488e2dda866a6c5573ee192fe3583239fb26ff2f7f9ceb0bc119ea6"},
|
||||
{file = "opencv_python-4.10.0.84-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ace140fc6d647fbe1c692bcb2abce768973491222c067c131d80957c595b71f"},
|
||||
{file = "opencv_python-4.10.0.84-cp37-abi3-win32.whl", hash = "sha256:2db02bb7e50b703f0a2d50c50ced72e95c574e1e5a0bb35a8a86d0b35c98c236"},
|
||||
{file = "opencv_python-4.10.0.84-cp37-abi3-win_amd64.whl", hash = "sha256:32dbbd94c26f611dc5cc6979e6b7aa1f55a64d6b463cc1dcd3c95505a63e48fe"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pyside6"
|
||||
version = "6.7.3"
|
||||
requires_python = "<3.13,>=3.9"
|
||||
summary = "Python bindings for the Qt cross-platform application and UI framework"
|
||||
groups = ["default"]
|
||||
dependencies = [
|
||||
"PySide6-Addons==6.7.3",
|
||||
"PySide6-Essentials==6.7.3",
|
||||
"shiboken6==6.7.3",
|
||||
]
|
||||
files = [
|
||||
{file = "PySide6-6.7.3-cp39-abi3-macosx_11_0_universal2.whl", hash = "sha256:1c21c4cf6cdd29bd13bbd7a2514756a19188eab992b92af03e64bf06a9b33d5b"},
|
||||
{file = "PySide6-6.7.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a21480cc746358f70768975fcc452322f03b3c3622625bfb1743b40ce4e24beb"},
|
||||
{file = "PySide6-6.7.3-cp39-abi3-manylinux_2_31_aarch64.whl", hash = "sha256:c2a1313296c0088d1c3d231d0a8ccf0eda52b84139d0c4065fded76e4a4378f4"},
|
||||
{file = "PySide6-6.7.3-cp39-abi3-win_amd64.whl", hash = "sha256:3ac8dcb4ca82d276e319f89dd99098b01061f255a2b9104216504aece5e0faf8"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pyside6-addons"
|
||||
version = "6.7.3"
|
||||
requires_python = "<3.13,>=3.9"
|
||||
summary = "Python bindings for the Qt cross-platform application and UI framework (Addons)"
|
||||
groups = ["default"]
|
||||
dependencies = [
|
||||
"PySide6-Essentials==6.7.3",
|
||||
"shiboken6==6.7.3",
|
||||
]
|
||||
files = [
|
||||
{file = "PySide6_Addons-6.7.3-cp39-abi3-macosx_11_0_universal2.whl", hash = "sha256:3174cb3a373c09c98740b452e8e8f4945d64cfa18ed8d43964111d570f0dc647"},
|
||||
{file = "PySide6_Addons-6.7.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:bde1eb03dbffd089b50cd445847aaecaf4056cea84c49ea592d00f84f247251e"},
|
||||
{file = "PySide6_Addons-6.7.3-cp39-abi3-manylinux_2_31_aarch64.whl", hash = "sha256:5a9e0df31345fe6caea677d916ea48b53ba86f95cc6499c57f89e392447ad6db"},
|
||||
{file = "PySide6_Addons-6.7.3-cp39-abi3-win_amd64.whl", hash = "sha256:d8a19c2b2446407724c81c33ebf3217eaabd092f0f72da8130c17079e04a7813"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pyside6-essentials"
|
||||
version = "6.7.3"
|
||||
requires_python = "<3.13,>=3.9"
|
||||
summary = "Python bindings for the Qt cross-platform application and UI framework (Essentials)"
|
||||
groups = ["default"]
|
||||
dependencies = [
|
||||
"shiboken6==6.7.3",
|
||||
]
|
||||
files = [
|
||||
{file = "PySide6_Essentials-6.7.3-cp39-abi3-macosx_11_0_universal2.whl", hash = "sha256:f9e08a4e9e7dc7b5ab72fde20abce8c97df7af1b802d9743f098f577dfe1f649"},
|
||||
{file = "PySide6_Essentials-6.7.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cda6fd26aead48f32e57f044d18aa75dc39265b49d7957f515ce7ac3989e7029"},
|
||||
{file = "PySide6_Essentials-6.7.3-cp39-abi3-manylinux_2_31_aarch64.whl", hash = "sha256:acdde06b74f26e7d26b4ae1461081b32a6cb17fcaa2a580050b5e0f0f12236c9"},
|
||||
{file = "PySide6_Essentials-6.7.3-cp39-abi3-win_amd64.whl", hash = "sha256:f0950fcdcbcd4f2443336dc6a5fe692172adc225f876839583503ded0ab2f2a7"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "shiboken6"
|
||||
version = "6.7.3"
|
||||
requires_python = "<3.13,>=3.9"
|
||||
summary = "Python/C++ bindings helper module"
|
||||
groups = ["default"]
|
||||
files = [
|
||||
{file = "shiboken6-6.7.3-cp39-abi3-macosx_11_0_universal2.whl", hash = "sha256:285fe3cf79be3135fe1ad1e2b9ff6db3a48698887425af6aa6ed7a05a9abc3d6"},
|
||||
{file = "shiboken6-6.7.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f0852e5781de78be5b13c140ec4c7fb9734e2aaf2986eb2d6a224363e03efccc"},
|
||||
{file = "shiboken6-6.7.3-cp39-abi3-manylinux_2_31_aarch64.whl", hash = "sha256:f0dd635178e64a45be2f84c9f33dd79ac30328da87f834f21a0baf69ae210e6e"},
|
||||
{file = "shiboken6-6.7.3-cp39-abi3-win_amd64.whl", hash = "sha256:5f29325dfa86fde0274240f1f38e421303749d3174ce3ada178715b5f4719db9"},
|
||||
]
|
23
pyproject.toml
Normal file
23
pyproject.toml
Normal file
@ -0,0 +1,23 @@
|
||||
[project]
|
||||
name = "ESD_bleeding_view_tool"
|
||||
version = "0.1.0"
|
||||
description = "Default template for PDM package"
|
||||
authors = [
|
||||
{name = "", email = ""},
|
||||
]
|
||||
dependencies = [
|
||||
"pyside6>=6.7.3",
|
||||
"opencv-python>=4.10.0.84",
|
||||
"numpy>=2.1.1",
|
||||
]
|
||||
requires-python = "==3.12.*"
|
||||
readme = "README.md"
|
||||
license = {text = "MIT"}
|
||||
|
||||
|
||||
[tool.pdm]
|
||||
distribution = false
|
||||
|
||||
[tool.pdm.scripts]
|
||||
main = "python src/esd_bleeding_view_tool/__init__.py"
|
||||
nox = "python src/esd_bleeding_view_tool/non_ui.py"
|
32
src/esd_bleeding_view_tool/__init__.py
Normal file
32
src/esd_bleeding_view_tool/__init__.py
Normal file
@ -0,0 +1,32 @@
|
||||
import sys
|
||||
import random
|
||||
from PySide6 import QtCore, QtWidgets, QtGui
|
||||
|
||||
class MyWidget(QtWidgets.QWidget):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
||||
self.hello = ["Hallo Welt", "Hei maailma", "Hola Mundo", "Привет мир"]
|
||||
|
||||
self.button = QtWidgets.QPushButton("Click me!")
|
||||
self.text = QtWidgets.QLabel("Hello World",
|
||||
alignment=QtCore.Qt.AlignCenter)
|
||||
|
||||
self.layout = QtWidgets.QVBoxLayout(self)
|
||||
self.layout.addWidget(self.text)
|
||||
self.layout.addWidget(self.button)
|
||||
|
||||
self.button.clicked.connect(self.magic)
|
||||
|
||||
@QtCore.Slot()
|
||||
def magic(self):
|
||||
self.text.setText(random.choice(self.hello))
|
||||
|
||||
if __name__ == "__main__":
|
||||
app = QtWidgets.QApplication([])
|
||||
|
||||
widget = MyWidget()
|
||||
widget.resize(800, 600)
|
||||
widget.show()
|
||||
|
||||
sys.exit(app.exec())
|
21
src/esd_bleeding_view_tool/non_ui.py
Normal file
21
src/esd_bleeding_view_tool/non_ui.py
Normal file
@ -0,0 +1,21 @@
|
||||
import cv2
|
||||
|
||||
video_dir = "raw/video/王传林.mp4"
|
||||
mark_dir = "raw/mark/ESD-Bleeding-标注.xlsx"
|
||||
|
||||
def convert_video(videoname):
|
||||
capture = cv2.VideoCapture(videoname)
|
||||
if capture.isOpened():
|
||||
frame_counter = 0
|
||||
while True:
|
||||
ret, img = capture.read() # img 就是一帧图片
|
||||
if frame_counter % 30 == 0:
|
||||
cv2.imwrite("temp/"+str(frame_counter)+".jpg", img)
|
||||
frame_counter += 1
|
||||
|
||||
if not ret:break # 当获取完最后一帧就结束
|
||||
else:
|
||||
print('视频打开失败!')
|
||||
|
||||
if __name__ == "__main__":
|
||||
convert_video(video_dir)
|
0
tests/__init__.py
Normal file
0
tests/__init__.py
Normal file
Loading…
x
Reference in New Issue
Block a user