最近不是很忙,没事儿在看CxImage这个图像库。发现它的Demo里有个类似于phtoshop套索的功能,很是有意思。在想它是如何实现的,略有收获,只是自己不愿动手来写程序。
主要有两点:一是蚂蚁线的绘制,可以参考CxImage类,采用了LineDDA函数。
另一个主要问题就是如何实现所选区域的定位,即如何判断一个点是否在所选取的这个不规则区域内。这个在CxImage里也有函数SelectionAddPolygon,算法没有说明,所以没有看懂。幸好清华大学陆宗骐有本书《Visual c++.net 图像处理编程》介绍了一种类似的算法。通过边界跟踪得到链码表,借助于链码表和线段表的方法实现。该书附源代码。
仅记下来,供以后参考。