1. Halcon 單相機标定

⟁ sportstream365 ⏳ 2025-10-25 19:44:03 👤 admin 👁️ 4313 ❤️ 12
1. Halcon 單相機标定

傳回頂部 1. Halcon 單相機标定 0 复制成功1. Halcon 單相機标定 2023-05-18 16:25:37 Halcon 單相機标定 示例 示例 1. Halcon 單相機标定 * 标定檔案路徑

ImgPath := '3d_machine_vision/calib/'

*關閉視窗

dev_close_window ()

*建立新視窗

dev_open_window (0, 0, 640, 480, 'black', WindowHandle)

*關閉更新,可以提升性能

dev_update_off ()

*區域以邊緣顯示

dev_set_draw ('margin')

*設定線寬

dev_set_line_width (3)

*設定字型

set_display_font (WindowHandle, 22, 'mono', 'true', 'false')

*

* 相機标定.

*

* 1. 根據畸變模型生成參數數組,例程選擇的是area_scan_division模型(适用場景:精度不高,标定圖檔數量少),是以有9參數

* area_scan_polynomial精度較高,對徑向畸變、切向畸變都進行校正

* 參數 CameraParam := ['area_scan_division',Focus,Kappa,Sx,Sy,Cx,Cy,ImageWidth,ImageHeight]

* Focus: 代表焦距,按照鏡頭參數進行填寫,遠心鏡頭填寫0;

* Kappa: 代表畸變大小,因為在标定之前,是以填寫0;

* Sx,Sy: 代表像元大小,即像元尺寸,産找相應相機參數即可;0.00000375m,0.000375cm,0.00375mm,3.75um;上面的機關都是m

* Cx,Cy: 代表圖像的坐标中心,即圖像像素尺寸寬高的一半;

* ImageWidth, ImageHeight: 代表圖像的寬和高

gen_cam_par_area_scan_division (0.012, 0, 0.00000375, 0.00000375, 640, 480, 1280, 960, StartCamPar)

* 建立标定資料模型

* CalibSetup:'calibration_object'用于标定一個或多個相機的内參以及相機位姿,其他的四個用于手眼标定

create_calib_data ('calibration_object', 1, 1, CalibDataID)

* 2. 在标定資料模型中寫入标定的類型以及初始相機參數,StartCamPar 第一步已經生成,是以直接使用即可

set_calib_data_cam_param (CalibDataID, 0, [], StartCamPar)

* 3. 在标定模型中定義标定的目标,即标定闆檔案的相關配置,引号中應該是内置的,未找到相應檔案

set_calib_data_calib_object (CalibDataID, 0, 'calplate_80mm.cpd')

* 5. 标定闆識别

NumImages := 7

for I := 1 to NumImages by 1

* 讀取圖像

read_image (Image, ImgPath + 'calib_image_' + I$'02d')

* 顯示圖像

dev_display (Image)

* 找到标定闆,并向标定資料模型中寫入提取到的點和finder pattern 輪廓,可以到幫助裡面仔細看下finder pattern的介紹

find_calib_object (Image, CalibDataID, 0, 0, I, [], [])

* 從标定資料模型中擷取提取到的 finder pattern 輪廓

get_calib_data_observ_contours (Caltab, CalibDataID, 'caltab', 0, 0, I)

* 從标定資料模型中擷取提取到的圓中心點

get_calib_data_observ_points (CalibDataID, 0, 0, I, Row, Column, Index, StartPose)

dev_set_color ('green')

dev_display (Caltab)

dev_set_color ('red')

disp_circle (WindowHandle, Row, Column, gen_tuple_const(|Row|,1.5))

endfor

* 6. 通過标定資料模型計算相機的内參和外參,Errors:标定後投影的均方根誤差,機關像素

calibrate_cameras (CalibDataID, Errors)

* 7. 擷取标定資料模型中存儲或計算的資料,CamParam中的數值與1中的相應項對應

get_calib_data (CalibDataID, 'camera', 0, 'params', CamParam)

* The reference image, i.e., the image in which the calibratio

* plate is located on the ruler is the first image

* 8. 擷取相機的位姿

get_calib_data (CalibDataID, 'calib_obj_pose', [0,1], 'pose', Pose)

* To take the thickness of the calibration plate into account, the z-valu

* of the origin given by the camera pose has to be translated by the

* thickness of the calibration plate.

* Deactivate the following line if you do not want to add the correction.

* 9. 如果将标定闆的厚度考慮進去,請執行下面一條指令

set_origin_pose (Pose, 0, 0, 0.002, Pose)

* measure the distance between the pitch lines

* 10. 讀取一張測試圖像

read_image (Image, ImgPath + 'ruler')

dev_display (Image)

* 11. 建立一個測量句柄

gen_measure_rectangle2 (690, 680, rad(-0.25), 480, 8, 1280, 960, 'bilinear', MeasureHandle)

measure_pairs (Image, MeasureHandle, 0.5, 5, 'all', 'all', RowEdgeFirst, ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, IntraDistance, InterDistance)

Row := (RowEdgeFirst + RowEdgeSecond) / 2.0

Col := (ColumnEdgeFirst + ColumnEdgeSecond) / 2.0

disp_cross (WindowHandle, Row, Col, 20, rad(45))

* 12.将像素左邊轉換到實際坐标系中

image_points_to_world_plane (CamParam, Pose, Row, Col, 'mm', X1, Y1)

distance_pp (X1[0:11], Y1[0:11], X1[1:12], Y1[1:12], Distance)

tuple_mean (Distance, MeanDistance)

tuple_deviation (Distance, DeviationDistance)

disp_message (WindowHandle, 'Mean distance: ' + MeanDistance$'.3f' + 'mm +/- ' + DeviationDistance$'.3f' + 'mm', 'window', 30, 60, 'yellow', 'false')

1. Halcon 單相機标定 1. Halcon 單相機标定 3D 計算機視覺 HALCON 标定 相機 上一篇: 11.21.8 下一篇: 【轉】如何解決Android7.0及以上的權限崩潰問題 繼續閱讀 halcon dots_image 點狀物提取 (by shany shang)源代碼: 圖像處理 HALCON 圖像點狀物分割 dots_image 圖像分割

07-31

你看過8K的VR直播嗎?快來高交會上體驗極緻版的“身臨其境”

VR 相機 科技 虛拟現實 3d

08-01

halcon仿射變換 HALCON

08-02

halcon 仿射變換了解

HALCON 視覺 hom_mat2d

08-02

halcon 仿射變換和區域跟随1. 應用場景2. 應用示例 HALCON

08-02

HALCON之幾何定位之仿射變換 HALCON 仿射變換 幾何定位

08-02

【halcon】模闆比對和仿射變換總結前言情況一情況二 圖像擺正從圖中得到模闆,和從模闆檔案中得到模闆的細微差別小結 halcon聚沙成塔 視覺檢測 計算機視覺 算法 HALCON

08-02

手指觸摸滑動物體帶慣性的旋轉 以及放大縮小(用插件easytouch 控制物體的旋轉和縮放)

相機 rotate

08-03

采用halcon開發3D視覺産品歡迎大家使用賽果科技的3D相機開發

3D相機 HALCON 機器視覺

08-04

【HALCON】【3D Object Model】register_object_model_3d_pair功能參數傳回值

HALCON

08-04

select_shape算子的使用與特性

HALCON 計算機視覺 圖像識别

08-04

手眼标定中RT矩陣的歐拉角和Halcon中pose的類型的關系 圖像處理 HALCON labview

08-04

(單/雙目)圖像标定全流程(C++/Opencv實作)---原理篇 标定 自動駕駛

08-05

Halcon算子--圖像、區域、輪廓、測量、拟合、垂足、夾角

HALCON 計算機視覺 圖像處理

08-06

百度大腦 EdgeBoard FZ3 配置邁德威視(mindvision)環境 Linux 相機 ubuntu EdegBoard MindVision

08-07

Android從相冊選擇圖檔和調用系統攝像頭拍照 android 圖檔 相冊 相機 攝像頭

08-07

相关推荐