opencv 三维重建基础

import cv2

import numpy as np

假设已经获取了相机矩阵和畸变系数

camera_matrix = np.array(...)

dist_coeffs = np.array(...)

读取校正前的图像

img1 = cv2.imread('left01.jpg')

校正图像

map1, map2 = cv2.fisheye.initUndistortRectifyMap(camera_matrix, dist_coeffs, np.eye(3), camera_matrix, img1.shape[0:2][::-1], cv2.CV_16SC2)

undistorted_img1 = cv2.remap(img1, map1, map2, interpolation=cv2.INTER_LINEAR, borderMode=cv2.BORDER_CONSTANT)

计算投影矩阵

proj_matrix = cv2.fisheye.getOptimizedProjectionMatrix(camera_matrix, dist_coeffs, undistorted_img1.shape[1], undistorted_img1.shape[0], alpha=0.0)

将校正后的图像投影到三维空间

img1_3d = cv2.fisheye.projectImageTo3D(undistorted_img1, proj_matrix)

显示三维点云

points = np.reshape(img1_3d, (3, -1)).T

points = np.hstack((points, np.ones((1, points.shape[1]))))

print(points)

相关推荐
HarryPoint1 分钟前
🔥Claude Code 源码分析报告新鲜出炉了
人工智能
Clavis1 分钟前
我给 Mac 的 Photo Booth 写了自动化脚本。为什么隐私比你想的重要得多
人工智能·python
AI问答工程师1 分钟前
从"检索一次就完事"到"Agent 自主决策":Agentic RAG 架构深度解析与实战
人工智能
Codebee3 分钟前
当软件从"工具"进化为"伙伴"ooderAgent 产品设计解析
人工智能
GISer_Jing3 分钟前
Claude Code的「渐进式披露」——让AI Agent从“信息过载”到“精准高效”
前端·人工智能·aigc
猫咪老师3 分钟前
发现一篇非常好的AI Memory综述!
人工智能·agent
贵慜_Derek7 分钟前
RAG 检索老翻车?很多时候是切块把话说「半截」
人工智能
江汉似年7 分钟前
World Model 发展,从生成、控制到表征的范式之争
人工智能·具身智能
zandy10118 分钟前
指标管理的AI自治之路:衡石平台如何实现异常检测、血缘分析与智能推荐的自动化治理
运维·人工智能·自动化
曾小蛙9 分钟前
【 AI 编程】Claude Code / Codex / Gemini CLI 全方位辅助工具
人工智能·claude·codex·cc-switch