)]}'
{
  "commit": "36c2ce87d13b9b7123bd0473b8b45fb3b6ae4271",
  "tree": "84eef2b410c393f2f705eb1bdb7796cc216db17a",
  "parents": [
    "d99a3a961e4a6ff7218d0ab749da57cf1a1677bd"
  ],
  "author": {
    "name": "Sergey Sharybin",
    "email": "sergey.vfx@gmail.com",
    "time": "Mon Jan 13 21:18:08 2014 +0600"
  },
  "committer": {
    "name": "Sergey Sharybin",
    "email": "sergey.vfx@gmail.com",
    "time": "Thu May 15 15:17:14 2014 +0200"
  },
  "message": "Libmv 2D homography estimation example application\n\nAdd an example application of homography matrix estimation\nfrom a 2D euclidean correspondences which is done in two\nsteps:\n\n- Coarse algebraic estimation\n- Fine refinement using Ceres minimizer\n\nNothing terribly exciting apart from an example of how to\nuse user callbacks.\n\nUser callback is used here to stop minimizer when average\nof symmetric geometric distance becomes good enough.\nThis might be arguable whether it\u0027s the best way to go\n(in some cases you would want to stop minimizer when\nmaximal symmetric distance is lower than a threshold) but\nfor a callback usage example it\u0027s good enough to stick\nto current logic.\n\nChange-Id: I60c8559cb10b001a0eb64ab71920c08bd68455b8\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dff6ef0c6778ff400a6fa88cd1d72ee1c959da27",
      "old_mode": 33188,
      "old_path": "examples/CMakeLists.txt",
      "new_id": "dbbcb81109fcca25bf5ccc56a72b437d10486cc5",
      "new_mode": 33188,
      "new_path": "examples/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8bc7136fde22788421210b8cfac430dcf88bde31",
      "new_mode": 33188,
      "new_path": "examples/libmv_homography.cc"
    }
  ]
}
