OpenCV 双光融合开发全攻略(C++ 版)

OpenCV 双光融合开发全攻略(C++ 版)

一、环境搭建与项目配置

1. 依赖安装(Ubuntu 20.04)

 
 

# 安装OpenCV官方库

sudo apt install libopencv-dev python3-opencv

# 验证安装

pkg-config --modversion opencv # 应输出4.5.5+

2. CMake 项目结构

 
 

# CMakeLists.txt

cmake_minimum_required(VERSION 3.10)

project(opencv_fusion)

find_package(OpenCV REQUIRED COMPONENTS core highgui imgproc calib3d)

include_directories(${OpenCV_INCLUDE_DIRS})

add_executable(fusion_main

src/calibration.cpp

src/stereo_disparity.cpp

src/image_fusion.cpp

)

target_link_libraries(fusion_main ${OpenCV_LIBS})

3. 核心头文件包含

 
 

#include <opencv2/opencv.hpp>

#include <opencv2/calib3d.hpp>

#include <opencv2/imgproc.hpp>

using namespace cv;

using namespace std;

二、双目视觉融合实现

1. 棋盘格校准(C++ 实现)

(1)角点检测与数据采集
 
 

Mat img = imread("calib_01.jpg");

Mat gray;

cvtColor(img, gray, COLOR_BGR2GRAY);

Size chessboardSize(8, 6);

vector<Point2f> corners;

bool found = findChessboardCorners(gray, chessboardSize, corners,

CALIB_CB_ADAPTIVE_THRESH | CALIB_CB_FAST_CHECK);

if(found) {

cornerSubPix(gray, corners, Size(11, 11), Size(-1, -1),

TermCriteria(TermCriteria::EPS + TermCriteria::MAX_ITER, 30, 0.1));

drawChessboardCorners(img, chessboardSize, corners, found);

}

(2)相机参数计算
 
 

vector<vector<Point3f>> objPoints;

vector<vector<Point2f>> imgPoints;

// 世界坐标系角点(Z=0)

vector<Point3f> objp;

for(int i=0; i<chessboardSize.height; i++) {

for(int j=0; j<

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值