ssfjhh 发表于 2014-07-11 22:55

六张照片如何贴在长方体的六个面上?

本帖最后由 ssfjhh 于 2014-07-11 23:01 编辑

有六张照片,分别为长方体的六面视图,长方体的尺寸未知,这些照片的宽和高并不与长方体的对应面的尺寸一致,比例也不一致,怎样计算出每张图的缩放比例,最终使每张照片尽可能完美的贴到这个长方体的六个面上,图片的宽高比例不能变。

通俗一点的说,就是拍了六张照片,来表示一个物体的六面视图,但是拍出的照片太难做到工程图中的高平齐,宽相等,从照片中很容易看出两张图相对于原物的比例不一致,我要做的工作是缩放每一张图的尺寸,使最终的六张图片的对应尺寸尽可能的接近。

下面是一组示例数据。在绝对正确的情况下,前视图和后视图的尺寸应当是完全一致的,左右视图的尺寸是完全一致的,前后俯仰视图的宽度应当是完全一致的,但是实际拍摄的照片的对应尺寸却不致,有些误差还比较大。


宽高厚
前视图13.6923.2
后视图12.7423.2
左视图19.875.57
右视图22.686.55
俯视图18.377.65
仰视图19.168.13


问:如何计算给每张图加多大的缩放比例能够使最终各视图的相应尺寸比较接近?

上述示例包括六张视图的信息,更常见的情况是缺少仰视图信息或后视图信息,缺少一张或者多张视图信息的情况下,又该怎样计算这个比例。

给个理由先 发表于 2014-07-12 00:57

长方向的6个面,按你给的数据是3组不同,放到3个桶中。
把6个照片(或者缺少时小于6个)放到这三个桶中,共有多少自己算吧。

放好后,计算每种情况下,每个图片都被缩放了多少百分比(或者其他值,你认为更能表现变化率的),作为权值求和。看那种情况下总值最小。
python实现起来应该too simple:lol:


ps,如果再多考虑,每个面可能转90度帖图的话,桶就变成6个了。

ssfjhh 发表于 2014-07-12 01:17

回复 2# 给个理由先


    不理解,能否细说?拜托了。

给个理由先 发表于 2014-07-12 01:38

本帖最后由 给个理由先 于 2014-07-12 01:40 编辑

纠正一点,前面说的那个缩放百分比是错的!缩放后贴到某个图,与缩放比率无关,只要清晰图符合就每问题,所以要保证照片尽可能高清晰度,更大可视范围。
应该是平铺贴到每个面后,覆盖率求最大值,或者覆盖的面积求最大值,或者裸露面积求最小值!

如下3组,相对的面放同一个桶中
face1/face2
face3/face4
face5/face6

6张照片,放到3个桶中,每个正好放2张。
排列组合多少中情况呢?

某种情况如下,
(face1/2, p1/2),face3/4, p3/p4), (face/5/6, p5/6)
p1/2缩放后,正好帖到这个长方形面face1/2的某个边沿,如果长宽比一样,那就全覆盖了最好,此时图片的面积求和。
p3/4一样计算.....

再计算其他所有排列组合,比较所有组合的最大值,就选那组!

ssfjhh 发表于 2014-07-12 01:57

回复 4# 给个理由先


    还是不理解,前后视图是一对相对面是一组,左右视图是一组,俯仰视图是一组,只有一种组合,何来最大值?

时间太晚了,大神早点睡吧。

ssfjhh 发表于 2014-07-14 09:35

@给个理由先大神还在吗?

q1208c 发表于 2014-07-14 13:49

我觉得这首先是个排列问题, 6张照片, 6个面, 那么, 应该有 6! 种排列.

然后, 应该是这些排列中照片变化率最小的一种. 因为照片只有在原始尺寸时清晰度最好, 放大, 或缩小, 都会带来影响.


不知道已知条件有哪些呢? 照片的原始尺寸是否已知呢?

ssfjhh 发表于 2014-07-14 14:25

本帖最后由 ssfjhh 于 2014-07-14 16:39 编辑

回复 7# q1208c


    我说得可能不够清楚,已经明确知道六张图分别表示哪个视图了,图片的原始尺寸也是已知的,只差调比例了。

q1208c 发表于 2014-07-14 15:22

回复 8# ssfjhh

噢. 你的意思是, 已经明确知道每个面对应的图是哪张, 也知道了原始尺寸, 就象你给的表格一样的数据. 现在, 只是要算出来这个长方体有多大. 对吧?


设长方体为 a x b x c, 6张图的缩放比例分别为 d1 ~ d6. 目的是使 d1 ~ d6 的 方差最小, 对吧.
        宽        高        厚
前视图        13.69        23.2       
后视图        12.74        23.2       
左视图                19.87        5.57
右视图                22.68        6.55
俯视图        18.37                7.65
仰视图        19.16                8.13   

(13.69 + x1):(23.2 + y1) = a:b

ssfjhh 发表于 2014-07-14 16:37

回复 9# q1208c


    不仅要算出长方体有多大,还要给我个算法算出每张照片应该缩放的比例,每张照片的宽高比不能变。
页: [1] 2 3 4 5 6
查看完整版本: 六张照片如何贴在长方体的六个面上?