小编vin*_*001的帖子

将浮点数转换为字符串的最快 C++ 方法

我遇到了将浮点数转换为字符串的问题,这to_string对我来说太慢了,因为我的数据可能涉及数百万个浮点数。

我已经有了如何快速写出这些数据的解决方案。

然而,在解决了那个问题之后,我很快意识到浮点数到字符串的转换产生了很大的影响。

那么,除了使用其他非标准库之外,还有其他想法或解决方案吗?

c++ floating-point formatting c++11

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

识别Contour是否对称 OpenCV

我用 OpenCV 中的二进制图像计算了轮廓,并使用各自的边界旋转矩形和最小椭圆来了解轮廓的形状。但是,我想知道形状是否在一个轴上对称。

那么,是否可以计算轮廓是否对称?(虽然不一定100%对称)

样例轮廓如下:

样品轮廓 在此输入图像描述 在此输入图像描述

c++ opencv

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

阐明进行多维数据集算法

关于行进立方体,我对其算法和实现有一些怀疑。我阅读了Pauling Bourke在Marching Cubes上的出色文章以及该站点上的可用源代码,但是,在理解以及如何以自己的方式实现算法方面,我仍然遇到一些问题。问题如下:

  • 网格单元大小-我已经读过,网格单元大小会影响生成的3D模型的质量。例如,如果我拥有一堆尺寸为(200 * 200 * 200)的X射线图像集,那么将从2个相邻图像切片中构建一个网格单元平板。因此,平板中的网格单元总数为(200-1)*(200-1),每个网格单元角对应于图像的像素值/密度。它是否正确??此外,我们如何实现不同大小的网格?

  • 体素大小-我已经阅读了《游行立方体》的一些参考资料,但我似乎无法找到算法中如何处理体素大小。如果我错了,请纠正我,在我的情况下,相邻图像层之间的间隙为100万密耳;因此,我该如何照顾Marching Cubes算法中的那些功能?是否照顾到Gridcell的大小?(假设:一个像素在其xy坐标中的大小为19微米,而gap / z为25.4微米/ 1密耳长)

  • 网格单元角的坐标(多维数据集的坐标)-我试图通过图像集尺寸(200 * 200 * 200)的嵌套循环为索引为ijk的网格单元的角坐标指定。它是否正确??有没有更快的方法呢?

注意:我已经在VTK中看到了MC的实现,但是我很难消化它,因为它依赖于其他一些VTK类。

c++ algorithm 3d marching-cubes

4
推荐指数
1
解决办法
813
查看次数

从父节点中删除子节点 - PugiXML

<Node>
  <A>
    <B id = "it_DEN"></B>
  </A>
  <A>
    <B id = "en_KEN"></B>
  </A>
  <A>
    <B id = "it_BEN"></B>
  </A>
</Node>
Run Code Online (Sandbox Code Playgroud)

如何删除具有不以使用 PugiXML开头的属性的子节点的<A></A>子节点。结果如下:<B></B>idit

<Node>
  <A>
    <B id = "it_DEN"></B>
  </A>
  <A>
    <B id = "it_BEN"></B>
  </A>
</Node>
Run Code Online (Sandbox Code Playgroud)

c++ pugixml

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

将图像分成包含对象的框

我遇到了用包含对象的框/子图像分割二值化图像的问题(注意:框可以是不规则的,而对象是任何其他原始形状的圆形)。这可以用下面的图片来解释:

带有物体的二值化图像

图 1:以圆圈为感兴趣对象的图像

分区图像

图 2:包含感兴趣对象的任意大小框的图像

因此,有什么意见可以做到吗?

c++ opencv

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

快速将数据从C ++ Vector写入文本文件

我想知道将数据vector<string>快速写入文本文件的最佳方法,因为该数据将涉及数百万行。

我已经尝试在C ++中使用ofstream(<<)以及使用C的fprintf,但是它们之间的性能很小,因为我记录了用于生成所需文件的时间。

vector<string> OBJdata;

OBJdata = assembleOBJ(pointer, vertexCount, facePointer);

FILE * objOutput;
objOutput = fopen("sample.obj", "wt");
for (int i = 0; i < OBJdata.size(); i++)
{
    fwrite(&OBJdata[i],1, sizeof(OBJdata[i].length()),objOutput );
}
fclose(objOutput);
Run Code Online (Sandbox Code Playgroud)

c++ file-io

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