6 R' x p: x) t% \8 d第一天晚上选题,看了看A,看了看B,B题分析性太强,属于应用统计,数据分析类,和队友商量着战略性放弃,然后就开始查资料,搞东西了,突然回忆起以前姜起源的书上貌似讲过CT成像这种东西,翻出来看果然有这玩意儿。然后看了看题目发现精度是4位小数,似乎可以暴力枚举答案啊(ACMer的特性),再仔细对照姜老的模型,发现参数太多了,180个角度,还有中心,连单元距离也没告诉,,,,图片是256x256,几乎搜到建模结束也不可能搜出来,突然陷入绝望,本着第一晚看看题的想法,就这样回宿舍碎觉了。 ( _# W' L" ~& l8 f# l$ N- | y { H* g$ N/ u. M
第二天上午我突然发现了一个很好的几何特性,圆无论从那边投影,始终间距是不变的,那不就是数一数探测器格子的事吗,于是乎敲了几行代码,发现180次投影绝大多数都是29个格子,那就8/29了。然后发现由于椭圆中兴到圆心的距离知道,而中心峰值最大,那就那么通过这个就可以大致确定角度了,还想了想其实中兴也可以这样算啊,取探测器中间位置为中心线不就行了?几何关系就弄出来了,到底靠不靠谱啊,不敢想,这时大概10.30,唐老进来吹逼了,还以为它能告诉我们一个很好的思路,结果就是瞎逼逼,连CT成像的数字图像处理原理都不知道……radon变换都没提到,间距都不会求。哎感到无望的我决定先去把自己的想法实现.敲了一敲,角度还是大致精确,对着其实角度29.。。。几度一个一个往上跑,可是中兴当取不同连线的时候就不行了.又陷入绝望,2,3两问还要重建图像呢,到了下午也不知道怎么处理,这时一个老师道出了精髓,你怎么就能确定中心一定在256像素呢。瞬间茅塞顿开.再也找不到求中心的方法了,在晚上要结束的时候发现matlab有iradon变换的函数,随便放了108个角度进去,竟然出来图像了,虽然有点倾斜,然后搜了一搜,发现scipy里还是准备好这些图像处理的基本变换函数的,就接着有python试了试,果然也是可以的.! Q. ?# p. M/ w; B) V m
$ C* t3 M1 c- ~1 a4 o7 U第三天就是各种方法乱上了,因为iradon没有中心这个接口,自己又不会写,反变换像素与原图像素不一致,各种乱搞,发现还原出来的图居然正好将原图缩小的一些,对比探测器长度和和原图宽度,竟然是根号2倍关系,随机明白了,开始截图,还原像素了,就这样度过了惊人的第3天. $ n. T7 K& K; I; p, I- I v * E! _. X4 a( E% A2 i第四天分析精度再也弄不出来什么东西了,只能xjb搞了,老师说几何方法在4问肯定没法做,那我也没办法了……可是老师说枚举180个角度确定中心去最小误差的搜索方法我至今怀疑,怎么可能一个角度就能搜出中心,而且,一次iradon变换运行时间至少为1秒啊,(可能是搞ACM的原因本能觉得是不可行的)。2 ^5 I, W7 b8 t: h9 a; S. V
# _2 I: Y3 S$ q2 W* J0 D
在晚上的时候老唐居然在群里发出了,最恶心的嘲讽,附上截图 o9 Y- V1 P4 F( U0 }7 h$ ~$ F" P
3 D8 h% `* V9 }. H+ x
( a# R0 ~$ _5 n7 M# E3 j
估计做A题的人的心得凉透了….就这样在这种嘲讽中忙活过了最后的4小时改论文时间….., h' Y1 c" |9 ^0 ^