我是数字图像处理的新手,必须模拟仿射不变量的傅立叶描述符程序,我想知道能够理解这个程序所需的先决条件,我的参考是使用Gonzalez的MATLAB进行数字图像处理,I我们在这个网站上看到了一个关于相同程序的问题,但是无法理解该程序以及解决方案,问题是:
“我正在使用Gonzalez frdescp函数来获取边界的傅里叶描述符。我使用这个代码,我得到两组完全不同的数字描述两个相同但不同的比例形状。
那有什么不对?“
有些人可以帮助我了解理解这个程序的先决条件并帮助我进一步帮助我吗?
答案 0 :(得分:1)
让我试一试,因为我将不得不使用英语而不是数学符号。首先,这是显示frdescp
frdescp
的文档。 {{1}}接受一个参数,它是一个n乘2的数字矩阵。这些数字是多少?这需要对傅立叶描述符的数学基础有所了解。在计算傅里叶描述符之前,假设是您有一个对象的轮廓,并且在该轮廓上有一些点。因此,例如,此图中显示了轮廓:
你在图片中看到黑线?在这里,您将从轮廓顺时针方向选择一个点列表。让我们调用此向量{(x_1,y_1),(x_2,y_2),...,(x_n,y_n)}。现在我们已经有了这些点,我们就可以计算出这个轮廓的傅里叶描述符了。在这个Matlab函数中实现的复数傅里叶描述符要求数字在复杂域中。因此,您必须将列表中的数字转换为复数,这很容易,因为您可以在复杂平面中将2D(x,y)中的实数元组转换为x + iy。然而matlab的功能已经为你做了这个。但现在您知道n乘2矩阵是什么,它只是轮廓上的x和y列表。在你有了这个之后,matlab函数采用离散傅立叶变换并得到描述符。这种描述符业务的好处是它在某些几何变换(例如平移,旋转和缩放)下是不变的。我希望这很有帮助。