0
当我实现了一个功能,即在的(-109) - 147
范围唯一编号向量映射到的0 - 159
新的范围如下因素this。避免重复的值从一个范围映射到另一个
到目前为止,映射工作正常,每个数字都被转移到正确的范围。我重复了第二个向量(新范围0 - 119
)
我面临的问题是每对数字(每个向量一个)表示160x120
图像中的位置,因此应该是唯一的。由于需要在返回float的映射函数中进行划分,我使用round()
来转换为int
(116.341 - > 116)。但是,这导致了问题点对不是唯一的了,因为:
Point -> new Range -> round()
--------------------------------------
177x(-99) -> 117.670x3.9608 -> 118x4 !
176x(-99) -> 117.006x3.9608 -> 118x4 !
正确映射到所需的范围内,但现在代表相同点是不是唯一的了。 重要的是:每个点都被映射到新的范围,并且没有信息丢失,例如重复被丢弃。 (点对持有更多必须保留的颜色信息。)
有没有办法解决这个问题?
Unique +“_mapping_”+仅两个变量=使用'#include
范围[0,159]有160个整数,所以很明显,如果你的矢量超过160个元素,就不可能将其成员唯一映射到新范围。 – Mark
不太清楚 - 你想要新的范围数字是唯一的吗?这显然是不可能的。 – Slava