免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123456
最近访问板块 发新帖
楼主: ssfjhh
打印 上一主题 下一主题

六张照片如何贴在长方体的六个面上? [复制链接]

论坛徽章:
4
金牛座
日期:2013-10-11 16:12:50卯兔
日期:2014-07-31 09:17:19辰龙
日期:2014-08-08 09:28:02狮子座
日期:2014-09-14 20:32:05
51 [报告]
发表于 2014-08-19 22:55 |只看该作者
回复 45# Hadron74


    我有疑问了。
这是你用我给出的示例数据算出的各面的长宽比
  1. >>> s
  2. [3.5673249551166966, 3.4625954198473283, 2.4013071895424836, 2.35670356703567, 1.6946676406135865, 1.8210361067503924]
复制代码
这是你检验时用的各面的长宽比
  1. >>> s=[3.72,3.72,2.24,2.24,1.65,1.65]
复制代码
一、你计算出x、y、z值,既各面的长宽比,怎样计算每个面应该缩放的比例?
二、既然列表s中的各值表示各面的长宽比,我是不允许扭曲图片的,为什么两次出现的s的值会不同?

论坛徽章:
0
52 [报告]
发表于 2014-08-20 13:24 |只看该作者
本帖最后由 Hadron74 于 2014-08-20 13:32 编辑

回复 51# ssfjhh

我再详细的把计算过程说一下:
根据你的表格:

宽        高        厚
前视图        13.69        23.2       
后视图        12.74        23.2       
左视图                19.87        5.57
右视图                22.68        6.55
俯视图        18.37                7.65
仰视图        19.16                8.13

对六个面,分别可以定出每个面的长宽比的值的照片值,即:

    s=[19.87/5.57,22.68/6.55,18.37/7.65,19.16/8.13,23.2/13.69,23.2/12.74]
>>> s
[3.5673249551166966, 3.4625954198473283, 2.4013071895424836, 2.35670356703567, 1.6946676406135865, 1.8210361067503924]

由于照片的比例各不相同,所以当然会有区别,这正是需要优化求解的原因。这六个面的长宽比,即对应我公式中的,s1~s6;

带入
ln x = 1/6*(ln S1 + lnS2)+1/3*(ln S3 + ln S4) -1/6*(ln S5 + Ln S6)
ln y = 1/6*(ln S1 + lnS2)-1/6*(ln S3 + ln S4) +1/3*(ln S5 + Ln S6)
即可得到长方体的比例;

x = 2.2454727111305153
y = 1.6581850229470443
z = 3.7234092190329156

用这个得到的长方体的比例,(这里已经是严格的长方体,所以长宽比只有三个值了),就可以近一步验证:
第二步的输入就是:
>>> s=[3.72,3.72,2.24,2.24,1.65,1.65]

如果第二步算出的优化长方体比例没有变化,验证我的解是最优解。事实确是这样的:

>>> s=[3.72,3.72,2.24,2.24,1.65,1.65]
>>> ly = 1./6*(log(s[0])+log(s[1])) - 1./6*(log(s[2])+log(s[3]))+1./3*(log(s[4])+log(s[5]))
>>> exp(ly)
1.6535637259737221
>>> lx = 1./6*(log(s[0])+log(s[1])) + 1./3*(log(s[2])+log(s[3]))-1./6*(log(s[4])+log(s[5]))
>>> exp(lx)
2.244838027988568

所以根据六个照片的比例优化的长方体就是我们需要的长方体的比例。


回答你的第一个问题:
怎样确定每个面的缩放比例?由于x,y,z已经定下,每个面的长宽比就确定了,唯一需要确定的是一个大小的参数,不妨设厚(c)为8cm,
则高(a)应为z*c=3.72*8cm=29.76cm; 宽(b)=y*c=1.65*8cm=13.2cm;
以宽-高面为例,对应的两个照片的长宽比是不变的,根据原始数据,高/宽比分别为为23.2/13.69=1.69和23.2/12.74=1.82;
根据这两个比例,你可以选择从留白(照片小于面)到覆盖(照片大于面)的高、宽范围:
                                      留白                                             覆盖
                  高                               宽                       高                              宽
第一面        1.69*13.2=22.30        13.2                  29.76                    29.76/1.69=17.6
第二面        1.82*13.2=24.02        13.2                  29.76                    29.76/1.82=16.35

根据图片的具体情况确定具体放缩的的尺度,上面只是给出了一个范围。

整个优化过程得到的解,保证了六个面总体的缩放比例变化值最小,但是如果你对图片的优先级程度不同,应对其采用权重处理后的公式,这里就不赘述了。

这是我的想法,抛砖引玉,希望有帮助。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP