- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 6D 姿态估计中使用的广泛引用的 LINEMOD 论文中的数据集。他们的数据集可在 http://campar.in.tum.de/Main/StefanHinterstoisser 获得。
他们的深度数据似乎是一次性格式,需要特殊函数才能加载。我需要编写一个 C++ 程序来包装一个依赖于 OpenCV 的提供函数,并找出从对象中提取数字并导出的最佳方法。对于整天使用 Python 和其他高级语言的人来说,这是困难/费力的。我想知道是否还有其他人已经完成了将深度数字放入更通用或 python 友好格式的工作?我环顾四周,但一无所获。
此外,C++ 程序很简短,但对于我未经训练的人来说却含糊不清。我怀疑同时精通 C++/opencv 和 Python 的人可以查看源代码和一个优雅的程序来在 python 中进行类似的文件读取?为了方便起见,我将其内容粘贴在下面。
http://campar.in.tum.de/personal/hinterst/index/downloads!09384230443!/loadDepth.txt
IplImage * loadDepth( std::string a_name )
{
std::ifstream l_file(a_name.c_str(),std::ofstream::in|std::ofstream::binary );
if( l_file.fail() == true )
{
printf("cv_load_depth: could not open file for writing!\n");
return NULL;
}
int l_row;
int l_col;
l_file.read((char*)&l_row,sizeof(l_row));
l_file.read((char*)&l_col,sizeof(l_col));
IplImage * lp_image = cvCreateImage(cvSize(l_col,l_row),IPL_DEPTH_16U,1);
for(int l_r=0;l_r<l_row;++l_r)
{
for(int l_c=0;l_c<l_col;++l_c)
{
l_file.read((char*)&CV_IMAGE_ELEM(lp_image,unsigned short,l_r,l_c),sizeof(unsigned short));
}
}
l_file.close();
return lp_image;
}
感谢您对此的帮助!
最佳答案
经过反复试验,下面的代码片段似乎有效。希望这对我的问题的其他人有用。
import struct
cpp_int_size = 4
cpp_ushort_size = 2
with open('ape/data/depth811.dpt', 'rb') as f:
rows_b = f.read(cpp_int_size) # I assume that the C++ int in question has 4 bytes ... trial and error
cols_b = f.read(cpp_int_size)
R = struct.unpack('<i', rows_b)[0] # small endian
C = struct.unpack('<i', cols_b)[0]
depth_image_str = f.read(R * C * cpp_ushort_size)
depth_img = np.fromstring(depth_image_str, dtype=np.uint16).reshape([R, C])
关于python - 解析 LINEMOD 6d 姿势估计数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46476689/
目前我将所有骨骼存储在世界空间中并直接从二进制文件加载它们。 我通过放置一个“箭头对象”来检查这个骨架,其中矩阵 bone_mat 作为“modelmatrix”。按预期工作。 Variable ex
我有一个 3d 点的 3x3 协方差矩阵,我想知道等效的 2d 协方差(对于图像平面中的 u,v),给定图像位姿 [Xc,Yc,Zc,q0,q1, q2,q3] , 3d 协方差可以是一个 3d 椭圆
我正在尝试将自定义 3D 模型格式导出到 Collada。我已经通过 XSD 构建了 Collada 数据类,现在当我尝试用数据填充它们时出现问题,特别是对于矩阵相关的问题。 我的 Skeleton
我实现了一个带有软件皮肤的 MD5 Loader。 md5 中的绑定(bind)姿势是最终的、绝对位置和旋转,您只需要计算与关节相关的权重。 我试图实现 GPU 蒙皮,但我被困在了一个点上。由于这些坐
当物体在场景中移动时如何计算 3D 姿态,我使用 SURF 跟踪场景中的物体并且该物体的初始 3D 姿态是已知的。我所知道的是,一旦我使用 SURF,两个连续帧之间的 2D 对应关系就知道了,因此通过
我正在寻求图像处理/计算机视觉专家的建议。尝试开发一种强大的、可缩放的算法来提取人体的尺寸。例如,他的上半身宽度。 问题: 没有面孔的图像 坐着的人 多个面孔 人拿着某物,从而覆盖了他的 body 的
我是一名优秀的程序员,十分优秀!