- capture_calib: capture calibration images (MindVision / USB) with a live quality gate (Laplacian sharpness, 3x3 coverage, board auto-detect) - calibrate: batch intrinsics from calib_images/, writes configs/camera.yaml - camera_calib: CameraCalib loader (intrinsics + distortion, cached undistort remap) and solvePose() via IPPE with a reprojection gate - configs/camera.yaml: MV-SUA131GC intrinsics, RMS 0.483 px over 31 images, ruler-verified distance error < 2% - xmake: three targets sharing an rm_deps rule, C++17 - gitignore: keep calibration photos/videos and generated compile_commands.json out of the repo
46 lines
1.6 KiB
Lua
46 lines
1.6 KiB
Lua
add_rules("mode.debug", "mode.release")
|
||
|
||
set_policy("generator.compile_commands", true)
|
||
|
||
set_languages("c++17")
|
||
|
||
-- 公共依赖:OpenCV + MindVision 相机 SDK
|
||
local ROOT = os.scriptdir()
|
||
|
||
rule("rm_deps")
|
||
on_load(function (target)
|
||
target:add("includedirs", ROOT .. "/inc")
|
||
target:add("includedirs", "/usr/local/include/opencv4")
|
||
target:add("includedirs", "/home/mzxiang/MindVisionSDK/include")
|
||
target:add("linkdirs", "/usr/local/lib")
|
||
target:add("linkdirs", "/home/mzxiang/MindVisionSDK/lib/x64")
|
||
target:add("rpathdirs", "/home/mzxiang/MindVisionSDK/lib/x64")
|
||
target:add("links", "opencv_core", "opencv_imgproc", "opencv_highgui",
|
||
"opencv_imgcodecs", "opencv_videoio", "opencv_calib3d",
|
||
"MVSDK")
|
||
end)
|
||
rule_end()
|
||
|
||
-- 主程序(自瞄本体)
|
||
target("27RM")
|
||
add_rules("rm_deps")
|
||
set_kind("binary")
|
||
-- 各工具有自己的 main 函数,从主程序中排除
|
||
add_files("src/*.cpp")
|
||
remove_files("src/capture_calib.cpp")
|
||
remove_files("src/calibrate.cpp")
|
||
|
||
-- 标定图采集工具
|
||
-- ./build/linux/x86_64/debug/capture_calib (MindVision 相机)
|
||
-- ./build/linux/x86_64/debug/capture_calib --usb 0 (USB 摄像头)
|
||
target("capture_calib")
|
||
add_rules("rm_deps")
|
||
set_kind("binary")
|
||
add_files("src/capture_calib.cpp", "src/camera_set.cpp")
|
||
|
||
-- 标定计算工具(读 calib_images/ 算出内参,存 camera_calib.yml)
|
||
target("calibrate")
|
||
add_rules("rm_deps")
|
||
set_kind("binary")
|
||
add_files("src/calibrate.cpp")
|