python - 获取关于距离的亮度级别(python)
问题描述
我需要根据 2 个输入获得 0 到 255(亮度范围)的值:距离和最大距离。If distance == 0
输出应该是 255,If distance == maxDistance
输出应该是 0。我该如何实现呢?我必须这样做大约 300000 次。
解决方案
由于最大距离对应于最小亮度值,因此不能真正在它们之间使用交叉乘法,但可以在确定亮度值的范围后使用一点插值:
import numpy as np
max_distance = 10
brightness = np.arange(0, 256, 1)
distance = np.linspace(0, max_distance, len(brightness))
def getBrightness(actual_distance):
i = 0
distance_list = []
brightness_range = []
while i < len(distance):
if distance[i] < actual_distance and distance[i + 1] > actual_distance:
brightness_range.append(brightness[i])
brightness_range.append(brightness[i + 1])
distance_list.append(distance[i])
distance_list.append(distance[i + 1])
i += 1
brightness_value = np.interp(actual_distance, distance_list, brightness_range)
return brightness_value
print(getBrightness(3))
上面要求你指定一个最大距离来避免无限大的距离,所以在距离为 3 处(指定最大距离为 10 后),得到如下亮度输出:
76.5
推荐阅读
- python - 输出不会输出到标准输出
- python - How can i implement Vector addition for the form [1,2,3,4] + v where v is vector and [1,2,3,4] is a list in python?
- javascript - Javascript TypeError:var不是函数
- spring - java.lang.AbstractMethodError in spring data Cassandra 1.5.x version with spring framework 4.3.x version
- flutter - 在 Flutter 中的 Scroll 上隐藏底部导航栏
- php - sudo apt-get install php5-xsl 给出 403 Forbidden 错误
- php - Yii2:filterModel的GridView“必须是整数”错误
- sql - 执行 SP 时从表中获取值
- java - 用 jna 加载 lib .so
- javascript - 在 Angular 5 应用程序中获取请求抛出 404 错误