小编dim*_*_tz的帖子

OpenCV - 用于边缘图(不是轮廓)的approxPolyDP

我已经成功地在轮廓(cv :: findContours)上应用了方法cv :: approxPolyDP,以便用更简单的多边形表示轮廓并隐式地做一些去噪.

我想在从RGBD相机(通常非常嘈杂)获取的边缘地图上做同样的事情,但到目前为止还没有太大的成功,我在网上找不到相关的例子.我需要这个的原因是,通过边缘图,人们还可以使用手指之间的边缘,手指遮挡产生的边缘或手掌中创建的边缘.

此方法是否适用于轮廓以外的一般边缘贴图?

有人能指出我的例子吗?

附上一些图片:

轮廓的成功示例: 在此输入图像描述

边缘图的问题案例:

很可能我以错误的方式绘制东西,但只绘制方法返回的像素表明最终结果中可能没有表示大的区域(根据epsilon参数,这并没有太大变化).

在此输入图像描述

我还附上了一张深度图像,类似于我在上面描述的实验管道中使用的图像.这个深度图像不是由深度相机获取的,而是通过使用OpenGL读取gpu的深度缓冲区来合成生成的.

在此输入图像描述

仅供参考,这也是直接从深度相机获取的深度图像的边缘图(使用原始图像,不应用平滑等)

在此输入图像描述

(从深度相机看到的手,手掌朝上,手指"朝向手掌"关闭)

c++ opencv image-processing gesture-recognition

14
推荐指数
1
解决办法
2万
查看次数

旋转矩阵的特征 - 重新正交化

在乘以大量旋转矩阵之后,由于舍入问题(去正交化),最终结果可能不再是有效的旋转矩阵

重新正交化的一种方法是遵循以下步骤:

  1. 将旋转矩阵转换为轴角度表示(链接)
  2. 将轴角转换回旋转矩阵(链接)

Eigen库中有什么东西可以通过隐藏所有细节来做同样的事情吗?或者有更好的食谱吗?

由于特殊的奇点情况,必须小心处理此过程,因此如果Eigen为此提供了更好的工具,那将是很好的.

algorithm math rotation eigen rotational-matrices

8
推荐指数
3
解决办法
5472
查看次数

特征 - 检查矩阵是否为正(半)确定

我正在实现一个谱聚类算法,我必须确保矩阵(laplacian)是正半正定的.

检查矩阵是否为正定(PD)就足够了,因为可以在特征值中看到"半"部分.矩阵非常大(nxn,其中n约为数千),因此特征分析是昂贵的.

在Eigen中是否有任何检查可以在运行时产生bool结果?

chol()如果矩阵不是PD,Matlab可以通过抛出异常来给出结果.遵循这个想法,Eigen返回一个没有抱怨的结果LLL.llt().matrixL(),虽然我期待一些警告/错误.Eigen也有这种方法isPositive,但是由于一个bug,它对于具有旧Eigen版本的系统是不可用的.

c++ eigen eigen3

8
推荐指数
2
解决办法
5989
查看次数

PCL - LUM的全球注册

我正在进行一个注册项目,我有一把椅子,一些物体在kinect前面旋转.

我可以成功配对注册,但正如预期的那样有一些漂移(导致图像).

我想使用LUM,以便对累积误差进行全局最小化(然后将其"扩展"到帧中),但我最终将帧悬浮在空中.(图片下方的代码)

LUM的使用有没有明显的错误?---我使用关键点+功能,而不是盲目地用全点云提供LUM

为什么所有示例都添加单向边而不是双向边?

在此输入图像描述

PARAM_LUM_centroidDistTHRESH = 0.30;
PARAM_LUM_MaxIterations = 100;
PARAM_LUM_ConvergenceThreshold = 0.0f;
int NeighborhoodNUMB = 2;
int FrameDistLOOPCLOSURE = 5;
PARAM_CORR_REJ_InlierThreshold = 0.020;

pcl::registration::LUM<pcl::PointXYZRGBNormal> lum;
lum.setMaxIterations(        PARAM_LUM_MaxIterations );
lum.setConvergenceThreshold( PARAM_LUM_ConvergenceThreshold );

QVector< pcl::PointCloud<pcl::PointXYZRGB>::Ptr >  cloudVector_ORGan_P_;



for (int iii=0; iii<totalClouds; iii++)
{                
        // read - iii_cloud_ORGan_P_
        // transform it with pairwise registration result
        cloudVector_ORGan_P_.append( iii_cloud_ORGan_P_ );
}

for (size_t iii=0; iii<totalClouds; iii++)
{        
    pcl::compute3DCentroid( *cloudVector_ORGan_P_[iii], centrVector[iii] );

    pcl::IntegralImageNormalEstimation<pcl::PointXYZRGB,pcl::Normal> ne;
    //blah blah parameters
    //compute normals with *ne*                            
    //pcl::removeNaNFromPointCloud
    //pcl::removeNaNNormalsFromPointCloud

    pcl::ISSKeypoint3D< …
Run Code Online (Sandbox Code Playgroud)

point-clouds point-cloud-library

7
推荐指数
1
解决办法
3167
查看次数

将2D点反投影到3D Plucker线

我正在尝试构建一个跟踪器(手动跟踪个人项目),因此我需要使用Plucker坐标将2d点反投影到3d线.(如光线追踪)

作为输入,我有一个点的2d坐标和投影矩阵.

关于plucker坐标的网上信息概述了它们有用的原因,但是没有纸质分析地描述上述过程.(他们只是提到他们回到投影线,没有任何进一步的描述)

有人可以指出我正确的方向吗?

raytracing projection projective-geometry projection-matrix

6
推荐指数
1
解决办法
3459
查看次数

Meshlab - 获取所选顶点的ID

我想选择网格的一个区域并获取所选顶点的ID,以便我可以在我的自定义c ++处理管道中使用它们.

例如,如果有一个3d手形网格,可以选择属于每个指尖的顶点.获取这些顶点的ID对于多个应用程序非常有用,例如跟踪,制动等.

Meshlab显然在引擎盖下使用这些顶点的ID,但是这些信息可以暴露给用户吗?网上有很多关于如何选择(以各种方式)网格的某些区域并应用一些处理功能的教程,但我没有找到关于获取有关所选区域的原始信息的内容.

meshlab

6
推荐指数
2
解决办法
9006
查看次数

Tensorflow日志消息不出现

我使用tensorflow 1.2.0与一起安装pip install

当我运行包含以下内容的示例时

import logging
tf.logging.set_verbosity(tf.logging.INFO)
Run Code Online (Sandbox Code Playgroud)

表单的日志消息

logging.info('TEST')
Run Code Online (Sandbox Code Playgroud)

即使带有标志,也不会出现在终端输出中--tostderr

根据这个答案我也试过了

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '0'
Run Code Online (Sandbox Code Playgroud)

但问题仍然存在。有任何想法吗?

python logging error-logging tensorflow

6
推荐指数
2
解决办法
5124
查看次数

c++大特征分解速度

作为我的管道的一部分,我需要按 6000x6000 的顺序执行大矩阵的特征分解。矩阵是密集的,所以除非我简化问题(如果可能的话),否则不能使用稀疏方法。

目前我玩玩具数据。使用 Eigen 库处理 513x513 矩阵我需要大约 6.5 秒,而对于 2049x2049 矩阵我需要大约 130 秒,这听起来令人望而却步,因为增长不是线性的。这是通过 实现的Eigen::SelfAdjointEigenSolver,而使用其他方法,例如Eigen::EigenSolveror Eigen::ComplexEigenSolverI 并没有得到显着的改进。当我尝试使用 Armadillo 时,arma::eig_sym即使使用选项“dc”` 也发生了同样的情况,该选项应该提供更快但近似的结果。Armadillo 有一些方法只返回前 X 个特征值以进行加速,但这仅适用于稀疏方法。目前我可能可以摆脱前 10-20 个特征值。

有没有办法或库/方法可以给我显着的加速?

c++ armadillo eigen eigen3

5
推荐指数
2
解决办法
1546
查看次数