【发布时间】:2019-07-07 01:39:54
【问题描述】:
我正在寻找一种更快的方法来规范化 Python 中的图像。我想将所有像素转换为 0 到 1 之间的值。
输入:JPEG 格式的 150x150 RGB 图像。
操作系统/硬件:8GB RAM 的 LINUX/P40 GPU
用例:实时分类任务的图像预处理。
每张图片的当前时间约为 5-10 毫秒。我正在寻找一种可以减少这个时间的方法。
我尝试了两种方法,使用 numpy 和 opencv。
使用 numpy(大约时间:8ms):
norm = (img - np.min(img)) / (np.max(img) - np.min(img))
使用opencv(大约时间:3ms):
norm = cv2.normalize(img, None, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_32F)
这两种方法对我的用例来说都很慢。谁能指导我使用更快的图像标准化方法?
【问题讨论】:
-
您的用例到底是什么?你的图片有多大?你希望它有多快? (如果 numpy 太慢,要么 python 是错误的语言,要么你的期望不切实际)
-
首先,您调用
np.min2 次,如果您那么在意性能,那是浪费时间。 -
+ 请说明你的
img是什么类型的 -
请说明您的图像尺寸、当前需要多长时间、需要多长时间,并说明您的操作系统以及您是在 Raspberry Pi 还是超级计算机上运行。
-
嗨,我已经更新了问题。
标签: python numpy computer-vision vision