Surface Curvature from Range Images (or Depth Maps)

I have implemented mean and gaussian curvature methods in python and thought they may be appropriate for inclusion to skimage. An outline of the code is provided below. It assumes a surface defined as a function of two coordinates, e.g. z = Z(x, y). The curvature calculations are from the following two papers * Kurita, T., & Boulanger, P. (1992). Computation of Surface Curvature from Range Images Using Geometrically Intrinsic Weights. In /MVA/ (pp. 389-392). * Zhao, C., Zhao, D., & Chen, Y. (1996, August). Simplified Gaussian and mean curvatures to range image segmentation. In /Pattern Recognition, 1996., Proceedings of the 13th International Conference on/ (Vol. 2, pp. 427-431). IEEE. If appropriate let me know and I will read the contribution/development documentation, make the code more robust and submit formally. Regards, Michael. -- Here is a basic outline of the code (H and K are used as they appear common terms used in the literature) : ---------------BEGIN CODE-------------- import numpy as np Zy, Zx = np.gradient(Z) Zxy, Zxx = np.gradient(Zx) Zyy, _ = np.gradient(Zy) # Mean Curvature - equation (3) from Kurita and Boulanger (1992) paper # See also Surface in 3D space, http://en.wikipedia.org/wiki/Mean_curvature H = (1 + (Zx ** 2)) * Zyy + (1 + (Zy ** 2)) * Zxx - 2 * Zx * Zy * Zxy H = H / ((2 * (1 + (Zx ** 2) + (Zy ** 2))) ** 1.5) # Gaussian Curvature - equation (4) from Kurita and Boulanger (1992) paper K = (Zxx * Zyy - (Zxy ** 2)) / ((1 + (Zx ** 2) + (Zy **2)) ** 2) # Simplified Mean Curvature - equation (3) from Zhao et.al (1996) paper H = Zxx + Zyy # Simplified Gaussian Curvature - equation (3) from Zhao et.al (1996) paper K = Zxx * Zyy - (Zxy ** 2) ---------------END CODE--------------

Dear Michael On Wed, Nov 13, 2013 at 3:19 PM, Brickle Macho <bricklemacho@gmail.com> wrote:
I have implemented mean and gaussian curvature methods in python and thought they may be appropriate for inclusion to skimage. An outline of the code is provided below. It assumes a surface defined as a function of two coordinates, e.g. z = Z(x, y). The curvature calculations are from the following two papers
Thank you for your post, and sorry for not responding earlier: I was hoping someone more knowledgeable would jump in. Since I am not that person, would you mind explaining to me the gist of this work, and what it aims to do, perhaps with some example images? Thanks! Stéfan
participants (2)
-
Brickle Macho
-
Stéfan van der Walt