python - 如何将复杂包的 python 类型提示指定为 opencv 或 tensorflow?

标签 python tensorflow opencv types opencv-python

我正在构建一个 python 库并编写如下函数:

def addimg(image) -> None:

现在我想将图像类型指定为 OpenCV 图像(例如,cv2.readimg() 的结果)。有没有一种优雅的方式来做到这一点?

PyTorch 或 TensorFlow 张量的相同问题。

否则,我的库将以没有指定类型的每个第二个变量结束,我认为这看起来非常丑陋。

非常感谢! 最好的, 伯恩哈德

最佳答案

OpenCV 图像的类型是 Numpy 数组(名为 ndarray):

>>> image = cv2.imread("my_image.png")
>>> type(image)
numpy.ndarray

所以你可以使用:

from numpy import ndarray

def addimg(image: ndarray) -> None:
    ...

更新:

引入 Numpy 1.21 版 numpy.typing.NDArrayndarray 的通用版本,允许指定数据类型。

例如,如果图像使用uint8:

from numpy import uint8
from numpy.typing import NDArray

def addimg(image: NDArray[uint8]) -> None:
    ...

关于python - 如何将复杂包的 python 类型提示指定为 opencv 或 tensorflow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66963911/

相关文章:

python - Python中的二叉树层次顺序遍历

python - 如何使用 Selenium 单击弹出模式框中的按钮

python - 绘制使用 Keras 现有激活函数定义的新激活函数

android - 在 Android 上的 OpenCV 中逐帧处理视频

python - 如何使用 Google Vision API 和 Python 改进 OCR 结果?

python - celery 生产优雅重启

python - 删除短语和括号并对数据框进行排序

c++ - 带有 c++ per_process_gpu_memory_fraction 的 Tensorflow 不工作

python - TensorFlow 中的 GRUCell : TypeError got multiple values for keyword argument 'num_units'

c - 对运动 vector 进行分组