读完此题后,总的感觉就是没有具体的确定的优化方案,所以迟迟没法下手敲代码。于是在网上搜了一下解题报告,看了好几篇仍是感觉好凌乱。直到看了这一篇http://liangsun.org/posts/poj-1009-edge-detection-report/后,思路才算清晰起来。
引文首先给出了一个命题:每一个在输出结果中的像素点在原图像中的位置至少跟一个输入像素点相邻。
注:这里的相邻是指两个像素点的位置间距为-1+{0,-width,+width},0+{-width,+width}, 1+{0,-width,+width}。
这里面重复一下原著的证明,帮助自己加深一下理解。
证明采用的是反证法,即证明:一个像素点在原图像中所在的位置不跟任何输入像素点相邻,那么此像素点必定不会出现在输出结果中。
证:假如在图1中,x跟任何输入像素点都不相邻,那么b=a,c=b,e=x