4.结构光:遇到的问题

折腾了结构光视觉已有一个月之久了,代码不易,且调且珍惜啊!遇到的主要问题如下:

1.OpenCV的速度真心慢,无论是相移还是格雷码,开源的要慎重啊!
2.立体矫正之后的图片进行三维重建,Failed!这个问题很致命,目前一直没搞懂,问题出在哪,继续摸索吧!


核心代码如下,参考OpenCV3.1的例子:

        // 初始化
	size_t numberOfPatternImages = graycode_Decoder->getNumberOfPatternImages();//42
	vector<vector<Mat>> captured_pattern;
	captured_pattern.resize(2);
	captured_pattern[0].resize(numberOfPatternImages);
	captured_pattern[1].resize(numberOfPatternImages);
	 
	// 全白图像,白色图案编码
	Mat color = imread(imagelist[numberOfPatternImages], IMREAD_COLOR);
	Size imagesSize = color.size();

	// 立体校正
	Mat R1, R2, P1, P2, Q;
	Rect validRoi[2];
	stereoRectify(cam1intrinsics, cam1distCoeffs, cam2intrinsics, cam2distCoeffs, imagesSize, R, T, R1, R2, P1, P2, Q,
		0, -1, imagesSize, &validRoi[0], &validRoi[1]);
	Mat map1x, map1y, map2x, map2y;
	initUndistortRectifyMap(cam1intrinsics, cam1distCoeffs, R1, P1, imagesSize, CV_32FC1, map1x, map1y);
	initUndistortRectifyMap(cam2intrinsics, cam2distCoeffs, R2, P2, imagesSize, CV_32FC1, map2x, map2y);


	// 导入图像
	for (size_t i = 0; i < numberOfPatternImages; i++)
	{
		// 0-41
		captured_pattern[0][i] = imread(imagelist[i], IMREAD_GRAYSCALE);
		// 44-87
		captured_pattern[1][i] = imread(imagelist[i + numberOfPatternImages + 2], IMREAD_GRAYSCALE);
		if ((!captured_pattern[0][i].data) || (!captured_pattern[1][i].data))
		{
			return;
		}
		remap(captured_pattern[1][i], captured_pattern[1][i], map1x, map1y, CV_INTER_LINEAR, BORDER_CONSTANT, Scalar(0, 0, 0));
		remap(captured_pattern[0][i], captured_pattern[0][i], map2x, map2y, CV_INTER_LINEAR, BORDER_CONSTANT, Scalar(0, 0, 0));
	}

	// 导入全白全黑背景图案
	vector<Mat> blackImages;
	vector<Mat> whiteImages;
	blackImages.resize(2);
	whiteImages.resize(2);
	whiteImages[0] = imread(imagelist[numberOfPatternImages], IMREAD_GRAYSCALE);//42	
	blackImages[0] = imread(imagelist[numberOfPatternImages + 1], IMREAD_GRAYSCALE);//43
	whiteImages[1] = imread(imagelist[2 * numberOfPatternImages + 2], IMREAD_GRAYSCALE);//86
	blackImages[1] = imread(imagelist[2 * numberOfPatternImages + 2 + 1], IMREAD_GRAYSCALE);//87

	//INTER_NEAREST, BORDER_CONSTANT, Scalar()); 
	remap(color, color, map2x, map2y, INTER_NEAREST, BORDER_CONSTANT, Scalar());
	remap(whiteImages[0], whiteImages[0], map2x, map2y, CV_INTER_LINEAR, BORDER_CONSTANT, Scalar(0, 0, 0));
	remap(whiteImages[1], whiteImages[1], map1x, map1y, CV_INTER_LINEAR, BORDER_CONSTANT, Scalar(0, 0, 0));
	remap(blackImages[0], blackImages[0], map2x, map2y, CV_INTER_LINEAR, BORDER_CONSTANT, Scalar(0, 0, 0));
	remap(blackImages[1], blackImages[1], map1x, map1y, CV_INTER_LINEAR, BORDER_CONSTANT, Scalar(0, 0, 0));

	// 解码
	Mat disparityMap;
	bool decoded = graycode_Decoder->decode(captured_pattern, disparityMap, blackImages, whiteImages, structured_light::DECODE_3D_UNDERWORLD);


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
"xxxxxxx学院毕业设计开题报告 " "学生姓名 " " " "学生学号 " " " " " "毕业设计题目 " "基于单片机智能灯控制系统 " " " "1、选题背景(含国内外相关研究综述及评价)与意义 " "能源问题和环境问题一直是人类社会面对的重大问题,特别是到了二十一世纪," "对降低能耗和保护环境的要求更成了国家长期发展的重中之重,我国也提出了" " "节能减排"的号召。而在众多的能源问题中,电能的短缺是束缚经济发展和民生 " "活的重要能源问题之一。 " "据报道,用于照明的能源消耗占整个办公大楼能源消耗的20%~60%,这部分能 " "耗的多少很程度上取决于照明的控制效果。在现代建筑的楼宇自动化系统中,照" "明控制也是其中一个重要分支。现代建筑对照明的要求很高,除了应该满足为建" "筑内人们在工作、学习、生活时对视觉环境的要求以外,还应该利用照明设备的" "不同类型及线的变换为人们提供一个舒适、有美感的办公、学习和生活环境," "此外,还应该提高能源的利用率,实现节能的目的。而传统的照明系统由于其管" "理落后、能源浪费、舒适性差、布线复杂以及灯具寿命短的缺点,己不能满足人" "们的这种需求,所以研究新型照明控制系统,对减少这部分能源消耗、减少环境" "污染,同时更好的满足人们对照明质量的要求,都有极其重要的意义。 " "新型的照明控制系统主要指综合了照明、自动化控制、计算机技术、电力电子技" "术和网络技术等的智能照明控制系统。最根本的是通过充分利用自然来减少人" "工照明带来的能源消耗。 " " " " " "1.2 课题解决的主要内容 " " " "(1)利用单片机作为中央处理器; " "(2)实现了室内无人或者关照充足时灯自动灯,有人到来且照不足时自 " "动开启灯。 " "(3)延时关灯; " "(4)所设计的开关系统应做到节能、智能、耐用、可靠性高以及维护方便。 " "(5)在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。 " "(6)根据硬件电路图,在开发板上完成器件的焊接。 " "(7)根据设计的硬件电路,编写控制STC89C52芯片的单片机程序。 " "(8)通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功 " "能。 " "1.3设计内容及性能指标和总体结构框图 " "智能灯控制系统由单片机最小系统、人体感应模块、关照强度模块、灯控制" "模块、电源模块和灯泡组成。本系统采用了敏电阻检测白天黑夜,红外热释电" "传感器感应人体信号,经过单片机分析处理后判断是否控制灯亮灭情况,实现" "了室内无人或者关照充足时灯自动灯,有人到来且照不足时自动开启灯" ",如果照度和人体感应都不满足时,单片机延时1分钟,关掉灯。实现了一 " "个节能的效果。该系统制作简单、成本低,安装比较方便,而且比较稳定、抗干" "扰能力强、灵敏度 高、安全可靠。 " "从设计的要求来分析该设计须包含如下结构:电路总原理图如图1所示: " " " "图1 总体设计框图 " " " " " "总结 " "智能灯控制系统采用了单片机STC89C52作为系统控制核心,最大限度的将其具" "备的资源应用到设计中,既体现了单片机最小系统的应用的灵活性,又实现功能" "多样的智能控制。由于采用了单片机技术为主导的智能化管理,可实现对灯的" "控制,运行稳定可靠,灵敏度高,具有非常重要的市场应用价值。 " "通过实践的学习,使我对整体的电路设计有了一个更全面的了解,锻炼了重全局" "考虑局部的能力。深刻体会了理论联系实际的重要性,从老师提出设计要求到完" "成设计报告,不断的完善自己的设计和电路。在图书馆查资料到写出具体的实施" "方案、画出电路图都要认真考虑,寻找最优的设计方案。经过多次修改最终于实" "现了设计要求。 " "在大学四年的学习和课题研究期间,老师们给予我许多悉心的指导和帮助,教给" "我知识和为人处世的道理。尤其是这次毕业论文设计,在这里非常感谢老师在设" "计中给我的建议、支持和帮助,非常感谢老师在我写论文期间对我的引导和启发" "。在整个论文的选题、理论研究、需求分析、总体设计、详细设计的过程中,自" "始至终得到了老师的悉心指导和深切关怀。感谢导师对我论文不厌其烦的精心修" "改,多次耐心地审阅了论文全稿,提出了许多宝贵的意见。还有一只在身边支持" "的同学,在我遇到问题时,他们都尽心为我解答,如果遇到我们都不熟悉的问题" ",他们都和我一起动手解决。由于老师的支持和同学的各方配合使我的课题能顺" "利的完成。 " "4.指导教师意见: " "智能灯控制系统,具有一定的实际运用意义,该生对于该题目的分析清晰、透" "彻,时间安排合理,同意开题
### 回答1: RTC4控制卡是一种专门用于激打标和切割系统的高性能控制器。该控制卡采用了先进的实时控制技术,能够提供精确的运动控制和稳定的激输出,广泛应用于各种工业生产线上。 RTC4控制卡的中文说明书主要包括以下内容: 1. 产品概述:介绍RTC4控制卡的基本功能、技术参数和应用领域,帮助用户了解该产品的特点与优势。 2. 硬件连接:详细介绍RTC4控制卡的硬件接口和连接方式,包括激器、电源、电机、传感器等的连接方法。同时说明如何正确连接和固定这些设备,确保系统的稳定性和可靠性。 3. 软件操作:介绍RTC4控制卡所配套的软件界面和操作步骤。通过图文并茂的方式,向用户展示如何进行系统的参数设置、激参数调节、运动轨迹规划等操作。同时还会介绍一些高级功能和常见问题的解决办法。 4. 安全注意事项:强调用户在使用RTC4控制卡时需要注意的安全事项,如使用适配的电源、避免触电、避免长时间暴露在激辐射下等。同时还会介绍一些常见的故障排除方法,以及如何正确维护和保养控制卡。 5. 附录:提供一些附加的技术资料,如控制卡的信号定义、开发接口和常用命令集等,方便用户进行二次开发和定制化需求。 通过这份详细的中文说明书,用户可以全面了解RTC4控制卡的使用方法和注意事项,有效提高工作效率和系统稳定性。 ### 回答2: RTC4控制卡是一种用于激器控制的硬件设备。该控制卡采用了先进的技术,能够实现对激器的各种参数进行精确的控制和调节,为激加工和实验研究提供了强大的支持。 RTC4控制卡的中文说明书详细介绍了该控制卡的功能和使用方法。首先,说明书对RTC4控制卡的基本结构和连接方式进行了介绍。用户可以通过接口板将RTC4控制卡与计算机连接,实现与计算机之间的数据传输和通信。 其次,说明书对RTC4控制卡的软件驱动进行了详细的说明和操作指导。用户可以通过安装指定的驱动程序,并按照说明书中的步骤进行操作,实现对激器进行控制和调节。同时,说明书还提供了一些常见问题的解决方法,帮助用户在使用过程中遇到问题时能够迅速解决。 此外,说明书还介绍了RTC4控制卡的主要功能和特点。它具有高精度的电流调节功能,可以实现对激器输出功率的精确控制。同时,它还具备多通道输出的能力,可以同时控制多个激器的工作。另外,该控制卡还支持脉冲信号输出,可以实现对激器的脉冲频率和脉冲宽度的调节。 总体来说,RTC4控制卡中文说明书提供了全面而详细的信息,帮助用户了解和使用该控制卡。通过学习和掌握说明书中的知识,用户可以充分发挥RTC4控制卡的功能,实现对激器的准确控制,满足不同领域的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值