小编Mar*_*tti的帖子

在Python 3中使用行进立方体进行点云三角测量

我正在开发 3D 重建系统,并希望使用 Python 3 从注册的点云数据生成三角形网格。我的对象不是凸的,因此行进立方体算法似乎是解决方案。

我更喜欢使用此类方法的现有实现,因此我尝试了scikit-imageOpen3d,但这两个 API 都不接受原始点云作为输入(请注意,我不是这些库的专家)。我转换数据的尝试失败了,并且我已经没有想法了,因为文档没有阐明函数的输入格式。

这些是我想要的片段,这pcd_to_volume是我需要的。

scikit 图像

import numpy as np
from skimage.measure import marching_cubes_lewiner

N = 10000
pcd = np.random.rand(N,3)

def pcd_to_volume(pcd, voxel_size):
    #TODO

volume = pcd_to_volume(pcd, voxel_size=0.05)

verts, faces, normals, values = marching_cubes_lewiner(volume, 0)
Run Code Online (Sandbox Code Playgroud)

开放3D

import numpy as np
import open3d

N = 10000
pcd = np.random.rand(N,3)

def pcd_to_volume(pcd, voxel_size):
    #TODO

volume = pcd_to_volume(pcd, voxel_size=0.05)

mesh = volume.extract_triangle_mesh()
Run Code Online (Sandbox Code Playgroud)

我无法找到正确编写该pcd_to_volume函数的方法。我不喜欢图书馆,所以这两种解决方案对我来说都很好。

您对正确转换我的数据有什么建议吗?点云是一个Nx3矩阵,其中dtype=float.

您知道另一种适用于原始点云数据的[行进立方体算法]实现吗?我更喜欢 …

marching-cubes python-3.x scikit-image

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

调试断言失败:_CrtIsValidHeapPointer(pUserData)

有时我在调试模式(图像)中运行我的Qt项目时出现"Debug Assertion Failed"错误.我不知道我错在哪里,因为编译器没有说什么,我不知道如何找到我的错误.

我使用Qt Creator 2.4.1,Qt 4.8.1在Windows Vista下编程.

我的程序必须从激光设备读取一些信息并将它们保存到一个文件中,其代码类似于:

void runFunction()
{
    configure_Scanning(...);

    while(...)
    {
        // do something
        scanFunction();
        // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的"有罪"功能(我认为问题出在哪里)

void scanFunction()
{
    file.open();

    data = getDataFromDevice();

    if(flag)
    {
        if(QString::compare(lineB,"")!=0)
        {
            QTextStream out(&file);
            out << lineB << endl;
            lineB = "";
        }
        lineA.append(data+"\t");
    }
    else
    {
        if(QString::compare(lineA,"")!=0)
        {
            QTextStream out(&file);
            out << lineA << endl;
            lineA = "";
        }
        lineB.prepend(data+"\t");
    }

    file.close();
}
Run Code Online (Sandbox Code Playgroud)

其中lineAlineB最初是两个void QString:我的想法是我进行双向扫描以在2D矩阵中保存信息(从-X到​​+ X,反之亦然,而Y到达指定的目标).lineA记忆( …

c++ debugging qt assertion

5
推荐指数
1
解决办法
3万
查看次数

如何使用HTML5和JavaScript访问特定的相机设备?

我写了一些HTML5和JS代码,用于在画布上从网络摄像头渲染视频流,但我不知道指定打开哪个摄像头设备的方法.

事实上,如果我访问我的代码与我的Android运行的网页,它只显示"自拍 - 凸轮".如何指定使用手机的主摄像头?有办法吗?

如果我从笔记本电脑访问该网页,则会打开内置网络摄像头.但是如何连接(辅助)USB摄像头?

这是我的脚本的"主要":

var video, canvas, context;

window.onload = Initialize;
Run Code Online (Sandbox Code Playgroud)

初始化功能:

function Initialize()
{
    video = document.getElementById("videoElement");

    canvas = document.getElementById("canvasElement");
    canvas.width = parseInt(canvas.style.width);
    canvas.height = parseInt(canvas.style.height);

    context = document.getCSSCanvasContext("2d", "mask", 640, 480);

    navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;// || navigator.msGetUserMedia || navigator.oGetUserMedia;

    if(navigator.getUserMedia)
    {
        navigator.getUserMedia({video: true}, VideoCapture, Error);
        requestAnimationFrame(IdleFunc);
    }
    else
    {
        alert("Error: your browser is not supported.");
    }
}
Run Code Online (Sandbox Code Playgroud)

成功回调:

function VideoCapture(stream)
{
    video.src = window.URL.createObjectURL(stream);
}
Run Code Online (Sandbox Code Playgroud)

失败回调:

function Error(e)
{
    alert("Error: " + e); …
Run Code Online (Sandbox Code Playgroud)

javascript html5 camera

5
推荐指数
0
解决办法
1万
查看次数

在QComboBox中搜索QString

如何在QComboBox中找到QString?我想得到组合框中与我的字符串对应的元素的索引.有原生方法吗?

提前致谢.

c++ search qstring qt4 qcombobox

3
推荐指数
1
解决办法
328
查看次数