我正在构建一个 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.NDArray
,ndarray
的通用版本,允许指定数据类型。
例如,如果图像使用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/