资源简介
ICP算法实现自动配准,基于opencv及vs实现,是二维的
ICP算法实现自动配准,基于opencv及vs实现,是二维的
代码片段和文件信息
// icp.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include “icp.h“
#define M_PI 3.1415926
Point3DSet *GetPoint3DSet(unsigned int *dset int number) {
int i;
double step = M_PI*3/1536;
#define POINT_NUMBER 682
Point3DSet *pset = (Point3DSet*)malloc(sizeof(Point3DSet));
pset->number = POINT_NUMBER;
pset->point = (Point3D*)malloc(POINT_NUMBER*sizeof(Point3D));
pset->invalid_point_number = 0;
#define MIN_DISTANCE_MM 20
/* -135 to +135 degree */
double theta;
for (i=44; i<384; i++) {
if (dset[i] < MIN_DISTANCE_MM) {
pset->point[i-44].x = 0;
pset->point[i-44].y = 0;
pset->point[i-44].z = 0;
pset->point[i-44].r = 0;
pset->point[i-44].theta = 0;
pset->invalid_point_number ++;
//printf(“uninitialized point #%d\n“ (i-44));
continue;
}
theta = (-M_PI*3/4) + i*step;
pset->point[i-44].x = cos(theta)*dset[i];
pset->point[i-44].y = sin(theta)*dset[i];
pset->point[i-44].z = 0;
pset->point[i-44].r = dset[i];
pset->point[i-44].theta = theta;
}
/* [0135) degree */
for (i=384; i<=725; i++) {
if (dset[i] < MIN_DISTANCE_MM) {
pset->point[i-44].x =0;
pset->point[i-44].y =0;
pset->point[i-44].z =0;
pset->point[i-44].r = 0;
pset->point[i-44].theta = 0;
pset->invalid_point_number ++;
//printf(“uninitialized point #%d\n“ (i-44));
continue;
}
theta = (i-384)*step;
pset->point[i-44].x = cos(theta)*dset[i];
pset->point[i-44].y = sin(theta)*dset[i];
pset->point[i-44].z =0;
pset->point[i-44].r = dset[i];
pset->point[i-44].theta = theta;
}
//printf(“pset invalid point number is %d\n“ pset->invalid_point_number);
return pset;
}
void PlotTwoPoint3DSet(Point3DSet *dset Point3DSet *mset) {
#define DIAMETER_PIXEL 300
#define MAX_DISTANCE_MM 4094
IplImage *mapImg;
mapImg = cvCreateImage( cvSize(DIAMETER_PIXEL*2DIAMETER_PIXEL*2) IPL_DEPTH_8U 3);
/* Reset the map */
/*for (i=0; i < mapImg->width; i++) {
for (j=0; j < mapImg->height; j++) {
cvSet2D(mapImg j i cvScalar(0000)); } }*/
double x y;
int i;
for (i=0; i < dset->number; i++) {
if ((dset->point[i].x ==0) && (dset->point[i].y == 0)) {continue;}
x = dset->point[i].x*DIAMETER_PIXEL/MAX_DISTANCE_MM;
y = dset->point[i].y*DIAMETER_PIXEL/MAX_DISTANCE_MM;
x += DIAMETER_PIXEL;
y += DIAMETER_PIXEL;
//printf(“(xy) = (%f%f)\n“ x y);
cvSet2D(mapImg y x cvScalar(255000));
}
for (i=0; i < mset->number; i++) {
if ((mset->point[i].x ==0) && (mset->point[i].y == 0)) {continue;}
x = mset->point[i].x*DIAMETER_PIXEL/MAX_DISTANCE_MM;
y = mset->point[i].y*DIAMETER_PIXEL/MAX_DISTANCE_MM;
x += DIAMETER_PIXEL;
y += DIAMETER_PIXEL;
//printf(“(xy) = (%f%f)\n“ x y);
cvSet2D(mapImg y x cvScalar(002550));
}
/* Plot Center */
cvSet2D(mapImg DIAMETER_PIXEL DIAMETER_PIXEL cvScalar(025500));
cvSet2D(mapImg DIAMETER_PIXEL+1 DIAMETER_PIXEL cvScalar(025500));
cvSet2D(mapImg
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 90624 2018-05-29 16:29 icp\Debug\icp.exe
文件 588136 2018-05-29 16:29 icp\Debug\icp.ilk
文件 1715200 2018-05-29 16:29 icp\Debug\icp.pdb
文件 2622 2018-05-29 16:29 icp\icp\Debug\cl.command.1.tlog
文件 21878 2018-05-29 16:29 icp\icp\Debug\CL.read.1.tlog
文件 1152 2018-05-29 16:29 icp\icp\Debug\CL.write.1.tlog
文件 565 2018-05-29 15:27 icp\icp\Debug\icp.Build.CppClean.log
文件 406 2018-05-29 15:39 icp\icp\Debug\icp.exe.em
文件 472 2018-05-29 15:39 icp\icp\Debug\icp.exe.em
文件 381 2018-05-29 16:29 icp\icp\Debug\icp.exe.intermediate.manifest
文件 63 2018-05-29 16:29 icp\icp\Debug\icp.lastbuildstate
文件 8711 2018-05-29 16:29 icp\icp\Debug\icp.log
文件 331500 2018-05-29 16:29 icp\icp\Debug\icp.obj
文件 1179648 2018-05-29 15:27 icp\icp\Debug\icp.pch
文件 713 2018-05-29 16:29 icp\icp\Debug\icp.vcxprojResolveAssemblyReference.cache
文件 0 2018-05-29 15:27 icp\icp\Debug\icp.write.1.tlog
文件 196 2018-05-29 15:39 icp\icp\Debug\icp_manifest.rc
文件 2 2018-05-29 16:29 icp\icp\Debug\li
文件 2 2018-05-29 16:29 icp\icp\Debug\li
文件 2 2018-05-29 16:29 icp\icp\Debug\li
文件 2 2018-05-29 16:29 icp\icp\Debug\li
文件 2 2018-05-29 16:29 icp\icp\Debug\li
文件 2 2018-05-29 16:29 icp\icp\Debug\li
文件 2 2018-05-29 16:29 icp\icp\Debug\li
文件 2 2018-05-29 16:29 icp\icp\Debug\li
文件 2 2018-05-29 16:29 icp\icp\Debug\li
文件 2 2018-05-29 16:29 icp\icp\Debug\li
文件 3228 2018-05-29 16:29 icp\icp\Debug\li
文件 7468 2018-05-29 16:29 icp\icp\Debug\li
文件 750 2018-05-29 16:29 icp\icp\Debug\li
............此处省略33个文件信息
相关资源
- OJ离线版 ACM离线本地测评/判定系统
-
MyMusicPla
yer.zip - KDTree测试亲测可用
- ☆J.N.Reddy-TheoryandAnalysisofElasticPlatesa
- 计算机程序的构造和解释-英文官方版
- PicPick2.25
- 苹果风格图标包ticp包分享
- ICP经典算法原理论文集合
- 计算机程序的构造和解释 第二版 si
- 计算机程序的构造和解释SICP中文第
- SICP的旧版本
- ICP点云匹配
- ICP实现代码
- stc-icp_STC单片机烧录工具兼容Win10
- SICP中文第二版
- ACM ICPC培训资料汇编 2 8
-
MusicPla
yer - SICP计算机程序的构造和解释(中英文
- 计算机程序的构造和解释SICP中文第
- ACM-ICPC 历年竞赛 真题,各大赛区真题
- 《计算机程序的构造和解释》中文高
- HowtoWriteandPublishaScientificPaper科技论文
- 算法参考资料
- 点云配准PFH、FPFH、icp、NDT、3Dsc.zip
- seerc-2019-editorial.pdf
- 基于PCL开源库fpfh+icp算法实现点云配准
- ACM ICPC Latex 自动生成模版的模版
- 基于PICPIC18F452的步进电机控制系统
- MusicPlayOnLine-master
- 微信h5支付“网站域名ICP备案主体与商
评论
共有 条评论