树莓派Opencv张正友棋盘标定法
make、Makefile
cc = gcc #最简易的makefile文件,这个可以用来进行文件之间的简易构建和链接,生成我们所需要的执行文件;
prom = calc
deps = $(shell find ./ -name "*.h")
src = $(shell find ./ -name "*.c")
obj = $(src:%.c=%.o) #将所有的.c文件替换成.o文件。 $(prom): $(obj)
$(cc) -o $(prom) $(obj) %.o: %.c $(deps)
$(cc) -c $< -o $@ clean:
rm -rf $(obj) $(prom)
objects = main.o kbd.o command.o display.o/
insert.o search.o files.o utils.o edit: $(objects)
cc -o edit $(objects) main.o : defs.h
kbd.o : defs.h command.h
command.o : defs.h command.h
display.o : defs.h buffer.h
insert.o : defs.h buffer.h
search.o : defs.h buffer.h
files.o : defs.h buffer.h command.h
utils.o : defs.h .PHONY : clean
clean:
rm edit $(objects) #首先这个objects相当于一个宏定义来的,然后.o文件的后面可以省去.c文件,因为在makefile执行时,它是自动寻找依赖项,所以它会自动添加.c文件到.o的后面。 #简单版的makefile objects = main.o kbd.o command.o display.o/
insert.o search.o files.o utils.o edit: $(objects)
cc -o edit $(objects) $(objects) : defs.h
kbd.o command.o files.o : command.h
display.o insert.o search.o files.o : buffer.h .PHONY : clean
clean:
rm edit $(objects) #整个执行操作是:首先我们是根据文件的存活时间来判定的,首先.edit文件是最总的运行文件,它是最新的,.o文件时其次的执行文件,.c文件时依赖项。我们就是要通过这个makefile进行操作他们之间的关系,.c生成.o这个叫做编译(complie),再把大量的.o合成运行文件这个叫做链接(link)。 #工作方式:GNU的make工作时的运行步骤入下:(想来其他的make也是相似)
#、读入全部的Makefile。
#、读入被include的其他Makefile。
#、初始化文件里的变量。
#、推导隐晦规则,并分析全部规则。
#、为全部的目标文件创建依赖关系链。
#、依据依赖关系,决定哪些目标要又一次生成。
#、运行生成命令。 #规则的语法:
#targets : prerequisites
# command
#......
#或者是这样:
#targets : prerequisites
# command
#......
CMake、CMakefile
#PROJECT_SOURCE_DIR目录下的Cmakefile文件
#树目录如下图,首先bin是执行文件生成的地方,build是Makefile生成的地方,编写完CMakefile文件之后,就会去build目录下cmake .. make,就会生成文件,doc文件时用来存放文档的,image就是照片的地方,include是头文件,譬如自己编写的头文件main.h之类的,lib就是我们生成链接库的地方,src就是我们的源文件的地方。 #PROJECT_SOURCE_DIR根目录会有一个CMakeLists.txt文件,SRC目录下面也会有一个CMakeLists.txt文件,需要我们自己分别编写; #这个是再项目根目录下的CMakeLists.txt
#cmake verson
CMAKE_MINIMUM_REQUIRED(VERSION 3.7.)
#project name
PROJECT(main)
#head file path 头文件目录 #source directory 源文件目录
AUX_SOURCE_DIRECTORY(src DIR_SRCS) #使用了默认的g++指定编译器
SET(CMAKE_CXX_COMPILER "g++")
#指定编译选项
SET(CMAKE_BUILD_TYPE Debug)
#指定了编译目录
SET(PROJECT_BINARY_DIR ${PROJECT_SOURCE_DIR}/build) #指定了最总生成执行文件的目录
SET(EXEUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#制定了生成链接库的目录
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
#指定了包含的头文件的目录
INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/include)
#动态链接库或静态链接库的搜索路径,相当于指定gcc的L参数
LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/lib)
#添加子目录,这样就可以进入源码文件src目录可以继续构建
ADD_SUBDIRECTORY(${PROJECT_SOURCE_DIR}/src) ###但是遇到了一个问题就是不知道为什么生成的main是再/build/src/里面. #根目录下的SRC里面的CMakeLists.txt ADD_EXECUTABLE(main main.cpp) #增加OPENCV的依赖
FIND_PACKAGE(OpenCV 3.3. REQUIRED)
#指定OPENCV的头文件包含
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS}) #动态链接到OPENCV的依赖库里面
TARGET_LINK_LIBRARIES(main
${OpenCV_LIBS}
)
#指定生成的链接的地方
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) #指定执行文件生成到bin中
#SET(EXECUTABLA_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) #生成静态库
ADD_LIBRARY(static_demo STATIC main.cpp) SET_TARGET_PROPERTIES(static_demo PROPERTIES OUTPUT_NAME "static") #生成动态库
ADD_LIBRARY(shared_demo SHARED main.cpp) SET_TARGET_PROPERTIES(shared_demo PROPERTIES OUTPUT_NAME "shared")

)

树莓派Opencv张正友棋盘标定法的更多相关文章
- Opencv 张正友相机标定傻瓜教程
注: 程序所用的OpenCV版本是 2.4.10 ,3.0以上的版本可能会有不同 先贴一下完整的工程代码: #include "opencv2/core/core.hpp" #in ...
- 张正友相机标定Opencv实现以及标定流程&&标定结果评价&&图像矫正流程解析(附标定程序和棋盘图)
使用Opencv实现张正友法相机标定之前,有几个问题事先要确认一下,那就是相机为什么需要标定,标定需要的输入和输出分别是哪些? 相机标定的目的:获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的 ...
- OpenCV实现张正友相机标定源代码
本源代码基于VC++和opencv Opencv2.4.13.6版本开发,实现张正友相机标定源代码,资源包括完整源代码和12张棋盘图片,完美运行.Opencv2.4.13.6安装包下载地址:http: ...
- SLAM入门之视觉里程计(6):相机标定 张正友经典标定法详解
想要从二维图像中获取到场景的三维信息,相机的内参数是必须的,在SLAM中,相机通常是提前标定好的.张正友于1998年在论文:"A Flexible New Technique fro Cam ...
- 企业管理系统——第三周需求&原型改进_张正浩,黄锐斌
企业管理系统——需求&原型改进,架构设计,测试计划 组员:张正浩,黄锐斌 一.需求&原型改进 1.给目标用户展现原型,与目标用户进一步沟通理解需求 我们的目标用户是公司管理员 场景:随 ...
- 【OpenCV-ANN神经网络自动驾驶】树莓派OpenCV神经网络自动驾驶小车【源码+实物】
没错!这个是我的毕业设计!!! 整个电子信息学院唯一一个优秀毕业设计 拿到这里炫耀了 实物如下: 电脑端显示效果: 自动驾驶实现过程: 1. 收集图像数据.建立局域网,让主机和Raspberry Pi ...
- 从零开始一起学习SLAM | 神奇的单应矩阵
小白最近在看文献时总是碰到一个奇怪的词叫“homography matrix”,查看了翻译,一般都称作“单应矩阵”,更迷糊了.正所谓:“每个字都认识,连在一块却不认识”就是小白的内心独白.查了一下书上 ...
- OpenCV相机标定和姿态更新
原帖地址: http://blog.csdn.net/aptx704610875/article/details/48914043 http://blog.csdn.net/aptx704610875 ...
- opencv 61篇
(一)--安装配置.第一个程序 标签: imagebuildincludeinputpathcmd 2011-10-21 16:16 41132人阅读 评论(50) 收藏 举报 分类: OpenCV ...
随机推荐
- python自动发送测试报告(五)
python实现自动发送邮件具体步骤参考笔者的另一篇博文,python实现邮件的发送 本次只展示发送附件的代码,MIMEApplication支持常用格式文档(.jpg..mp3.zip等)当做附件上 ...
- [JSON_01] JSON 解析
0. 说明 介绍 && 测试 JSON 1. 介绍 XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. JSON: ...
- Hadoop2.7.6_07_HA高可用
1. Hadoop的HA机制 前言:正式引入HA机制是从hadoop2.0开始,之前的版本中没有HA机制 1.1. HA的运作机制 (1)hadoop-HA集群运作机制介绍 所谓HA,即高可用(7*2 ...
- asp.net core中使用HttpClient实现Post和Get的同步异步方法
准备工作 1.visual studio 2015 update3开发环境 2.net core 1.0.1 及以上版本 目录 1.HttpGet方法 2.HttpPost方法 3.使用示例 4. ...
- 深入探究JFreeChart
1 简介 JFreeChart 是 SourceForge.net 上的一个开源项目,它的源码和 API 都可以免费获得. JFreeChart 的功能非常强大,可以实现饼图 ( 二维和三维 ) , ...
- Hadoop 基本概念
一.Hadoop 简介 Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构,它可以使用户在不了解分布式底层细节的情況下开发分布式程序,充分利用集群的威力进行高速运算和存储. 从其定 ...
- 洛谷P2342-叠积木
Problem 洛谷P2342-叠积木 Accept: 373 Submit: 1.1k Time Limit: 1000 mSec Memory Limit : 128MB Problem ...
- [国家集训队]JZPFAR
嘟嘟嘟 k-d tree模板之二:查询第k大距离.(所以是怎么上黑的) 因为k-d tree的查询就是暴力嘛,所以我就想到了一个很暴力的做法:每一次查询用一个长度为k的优先队列维护.按距离递增,编号递 ...
- Smith Numbers POJ - 1142 (暴力+分治)
题意:给定一个N,求一个大于N的最小的Smith Numbers,Smith Numbers是一个合数,且分解质因数之后上质因子每一位上的数字之和 等于 其本身每一位数字之和(别的博客偷的题意) 思路 ...
- jquery clone
clone([Even[,deepEven]]) 概述 克隆匹配的DOM元素并且选中这些克隆的副本. 在想把DOM文档中元素的副本添加到其他位置时这个函数非常有用. 参数 EventsBooleanV ...