我目前正在尝试用cv2对从深度相机接收到的深度图像进行归一化处理。
我已经尝试了以下操作:我使用这行代码对收到的图像进行归一化处理,取值范围在0和1之间:
cv2.normalize(depth_array, depth_array, 0, 1, cv2.NORM_MINMAX)这种归一化的问题是,我的深度图像不是在两个设定值之间进行归一化,而是在depth_array的最大值和最小值之间进行归一化,这导致最近的对象始终是黑色的。
我想改变它在两个设置值之间的归一化,比如0 8 -> 0 1。当我在谷歌上搜索时,我没有找到任何我想做的事情。有没有办法在两个设定值之间对图像进行归一化?
发布于 2021-02-16 00:20:58
重帧通常具有这样的结构:
# linear reframe [min1, max1] -> [min2, max2]
def reframe(value, min1, max1, min2, max2):
value -= min1;
value /= (max1 - min1);
value *= (max2 - min2);
value += min2;
return value;使用它,我们可以看到我们需要对整个图像做些什么才能让它工作。假设我们从low,high -> 0,1开始,我们可以看到我们只需要从整个图像中减去"low“,然后将其除以(high - low)。这种类型的重帧也将进行外推。
import cv2
import numpy as np
# load images
img = cv2.imread("one.png");
# convert type to float
img = img.astype(np.float32);
# reframe
low = 100;
high = 200;
img -= low;
img /= (high - low);https://stackoverflow.com/questions/66207292
复制相似问题