! M2 p# g& M, R3 I+ d: ]0 }简单概括游戏体验非常差!!!0 m0 z }' a3 q
1 z; B C7 `: |1 Y; r# k第一天晚上选题,看了看A,看了看B,B题分析性太强,属于应用统计,数据分析类,和队友商量着战略性放弃,然后就开始查资料,搞东西了,突然回忆起以前姜起源的书上貌似讲过CT成像这种东西,翻出来看果然有这玩意儿。然后看了看题目发现精度是4位小数,似乎可以暴力枚举答案啊(ACMer的特性),再仔细对照姜老的模型,发现参数太多了,180个角度,还有中心,连单元距离也没告诉,,,,图片是256x256,几乎搜到建模结束也不可能搜出来,突然陷入绝望,本着第一晚看看题的想法,就这样回宿舍碎觉了。: d' }: W! u2 e& ]8 r
e( E1 s; U5 q) a; S第二天上午我突然发现了一个很好的几何特性,圆无论从那边投影,始终间距是不变的,那不就是数一数探测器格子的事吗,于是乎敲了几行代码,发现180次投影绝大多数都是29个格子,那就8/29了。然后发现由于椭圆中兴到圆心的距离知道,而中心峰值最大,那就那么通过这个就可以大致确定角度了,还想了想其实中兴也可以这样算啊,取探测器中间位置为中心线不就行了?几何关系就弄出来了,到底靠不靠谱啊,不敢想,这时大概10.30,唐老进来吹逼了,还以为它能告诉我们一个很好的思路,结果就是瞎逼逼,连CT成像的数字图像处理原理都不知道……radon变换都没提到,间距都不会求。哎感到无望的我决定先去把自己的想法实现.敲了一敲,角度还是大致精确,对着其实角度29.。。。几度一个一个往上跑,可是中兴当取不同连线的时候就不行了.又陷入绝望,2,3两问还要重建图像呢,到了下午也不知道怎么处理,这时一个老师道出了精髓,你怎么就能确定中心一定在256像素呢。瞬间茅塞顿开.再也找不到求中心的方法了,在晚上要结束的时候发现matlab有iradon变换的函数,随便放了108个角度进去,竟然出来图像了,虽然有点倾斜,然后搜了一搜,发现scipy里还是准备好这些图像处理的基本变换函数的,就接着有python试了试,果然也是可以的.0 [1 g" X. m! K7 E0 `+ i; C
) `( c# Y& z' I* Y( m+ y
第三天就是各种方法乱上了,因为iradon没有中心这个接口,自己又不会写,反变换像素与原图像素不一致,各种乱搞,发现还原出来的图居然正好将原图缩小的一些,对比探测器长度和和原图宽度,竟然是根号2倍关系,随机明白了,开始截图,还原像素了,就这样度过了惊人的第3天. % g2 `# {3 Z& f! a* R. C5 t7 i( Q; f
第四天分析精度再也弄不出来什么东西了,只能xjb搞了,老师说几何方法在4问肯定没法做,那我也没办法了……可是老师说枚举180个角度确定中心去最小误差的搜索方法我至今怀疑,怎么可能一个角度就能搜出中心,而且,一次iradon变换运行时间至少为1秒啊,(可能是搞ACM的原因本能觉得是不可行的)。 2 ^/ z& q' t9 Y5 k7 D' o $ p6 y/ T. t3 \9 ?$ e1 b在晚上的时候老唐居然在群里发出了,最恶心的嘲讽,附上截图 5 R+ W, Q" o. n. w1 v7 @/ W X. `: G