code: def mesh_surface_area(verts, faces):
      """Compute surface area, given vertices and triangular faces.
  
      Parameters
      ----------
      verts : (V, 3) array of floats
          Array containing coordinates for V unique mesh vertices.
      faces : (F, 3) array of ints
          List of length-3 lists of integers, referencing vertex coordinates as
          provided in `verts`.
  
      Returns
      -------
      area : float
          Surface area of mesh. Units now [coordinate units] ** 2.
  
      Notes
      -----
      The arguments expected by this function are the first two outputs from
      `skimage.measure.marching_cubes`. For unit correct output, ensure correct
      `spacing` was passed to `skimage.measure.marching_cubes`.
  
      This algorithm works properly only if the ``faces`` provided are all
      triangles.
  
      See Also
      --------
      skimage.measure.marching_cubes
  
      """
      # Fancy indexing to define two vector arrays from triangle vertices
      actual_verts = verts[faces]
      a = actual_verts[:, 0, :] - actual_verts[:, 1, :]
      b = actual_verts[:, 0, :] - actual_verts[:, 2, :]
      del actual_verts
  
      # Area of triangle in 3D = 1/2 * Euclidean norm of cross product
      return ((np.cross(a, b) ** 2).sum(axis=1) ** 0.5).sum() / 2.0
  
file_path: scikit-image/skimage/measure/_marching_cubes_lewiner.py
imports: import base64
  import numpy
  from .None import _marching_cubes_lewiner_luts
  from .None import _marching_cubes_lewiner_cy
label_desc: Use image node_id 5 for calling a global function with example usage: mesh_surface_area(verts, faces) and returns: unknown