pub struct Kinfu_KinFu { /* private fields */ }
Expand description
KinectFusion implementation
This class implements a 3d reconstruction algorithm described in kinectfusion paper.
It takes a sequence of depth images taken from depth sensor (or any depth images source such as stereo camera matching algorithm or even raymarching renderer). The output can be obtained as a vector of points and their normals or can be Phong-rendered from given camera pose.
An internal representation of a model is a voxel cuboid that keeps TSDF values which are a sort of distances to the surface (for details read the kinectfusion article about TSDF). There is no interface to that representation yet.
KinFu uses OpenCL acceleration automatically if available. To enable or disable it explicitly use cv::setUseOptimized() or cv::ocl::setUseOpenCL().
This implementation is based on kinfu-remake.
Note that the KinectFusion algorithm was patented and its use may be restricted by the list of patents mentioned in README.md file in this module directory.
That’s why you need to set the OPENCV_ENABLE_NONFREE option in CMake to use KinectFusion.
Implementations§
Source§impl Kinfu_KinFu
impl Kinfu_KinFu
pub fn create(_params: &Ptr<Kinfu_Params>) -> Result<Ptr<Kinfu_KinFu>>
Trait Implementations§
Source§impl Boxed for Kinfu_KinFu
impl Boxed for Kinfu_KinFu
Source§unsafe fn from_raw(
ptr: <Kinfu_KinFu as OpenCVFromExtern>::ExternReceive,
) -> Self
unsafe fn from_raw( ptr: <Kinfu_KinFu as OpenCVFromExtern>::ExternReceive, ) -> Self
Source§fn into_raw(self) -> <Kinfu_KinFu as OpenCVTypeExternContainer>::ExternSendMut
fn into_raw(self) -> <Kinfu_KinFu as OpenCVTypeExternContainer>::ExternSendMut
Source§fn as_raw(&self) -> <Kinfu_KinFu as OpenCVTypeExternContainer>::ExternSend
fn as_raw(&self) -> <Kinfu_KinFu as OpenCVTypeExternContainer>::ExternSend
Source§fn as_raw_mut(
&mut self,
) -> <Kinfu_KinFu as OpenCVTypeExternContainer>::ExternSendMut
fn as_raw_mut( &mut self, ) -> <Kinfu_KinFu as OpenCVTypeExternContainer>::ExternSendMut
Source§impl Debug for Kinfu_KinFu
impl Debug for Kinfu_KinFu
Source§impl Drop for Kinfu_KinFu
impl Drop for Kinfu_KinFu
Source§impl Kinfu_KinFuTrait for Kinfu_KinFu
impl Kinfu_KinFuTrait for Kinfu_KinFu
Source§impl Kinfu_KinFuTraitConst for Kinfu_KinFu
impl Kinfu_KinFuTraitConst for Kinfu_KinFu
fn as_raw_Kinfu_KinFu(&self) -> *const c_void
Source§fn get_params(&self) -> Result<Kinfu_Params>
fn get_params(&self) -> Result<Kinfu_Params>
Source§fn render(&self, image: &mut impl ToOutputArray) -> Result<()>
fn render(&self, image: &mut impl ToOutputArray) -> Result<()>
Source§fn render_1(
&self,
image: &mut impl ToOutputArray,
camera_pose: Matx44f,
) -> Result<()>
fn render_1( &self, image: &mut impl ToOutputArray, camera_pose: Matx44f, ) -> Result<()>
Source§fn get_cloud(
&self,
points: &mut impl ToOutputArray,
normals: &mut impl ToOutputArray,
) -> Result<()>
fn get_cloud( &self, points: &mut impl ToOutputArray, normals: &mut impl ToOutputArray, ) -> Result<()>
Source§fn get_points(&self, points: &mut impl ToOutputArray) -> Result<()>
fn get_points(&self, points: &mut impl ToOutputArray) -> Result<()>
Source§fn get_normals(
&self,
points: &impl ToInputArray,
normals: &mut impl ToOutputArray,
) -> Result<()>
fn get_normals( &self, points: &impl ToInputArray, normals: &mut impl ToOutputArray, ) -> Result<()>
impl Send for Kinfu_KinFu
Auto Trait Implementations§
impl Freeze for Kinfu_KinFu
impl RefUnwindSafe for Kinfu_KinFu
impl !Sync for Kinfu_KinFu
impl Unpin for Kinfu_KinFu
impl UnwindSafe for Kinfu_KinFu
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<Mat> ModifyInplace for Matwhere
Mat: Boxed,
impl<Mat> ModifyInplace for Matwhere
Mat: Boxed,
Source§unsafe fn modify_inplace<Res>(
&mut self,
f: impl FnOnce(&Mat, &mut Mat) -> Res,
) -> Res
unsafe fn modify_inplace<Res>( &mut self, f: impl FnOnce(&Mat, &mut Mat) -> Res, ) -> Res
Mat
or another similar object. By passing
a mutable reference to the Mat
to this function your closure will get called with the read reference and a write references
to the same Mat
. This is unsafe in a general case as it leads to having non-exclusive mutable access to the internal data,
but it can be useful for some performance sensitive operations. One example of an OpenCV function that allows such in-place
modification is imgproc::threshold
. Read more