halcon海康双相机采集与标定

 1.相机设置

相机设置自动曝光,bayerRG8, 触发模式关闭,触发源=软触发
 

2.异步采集 设置及程序

采集助手设置 colortype=default bit=8

相机分辨率3072x2048,下采样2=1536x1024,否则无法采集

* Example for grabbing images from two GigEVision cameras.
*
* For this example we assume that both cameras are connected
* to the PC directly. If the cameras are connected to the PC
* via a switch please refer to the example
* gigevision2_interpacket_delay.hdev.
*
*
dev_close_window ()
dev_close_window ()
info_framegrabber ('GigEVision2', 'device', Information, Devices)
while (|Devices| < 2)
  * This example requires two GigEVision cameras.
endwhile
scale:=5
open_framegrabber ('GigEVision2', 0, 0, 0, 0, 0, 0, 'progressive', 8, 'default', -1, 'false', 'default', 'LL', 0, -1, AcqHandle1)

get_framegrabber_param (AcqHandle1, ['image_width','image_height'], ImageSize1)
dev_open_window (0, 0, ImageSize1[0] / scale, ImageSize1[1] / scale, 'black', WindowHandle1)
open_framegrabber ('GigEVision2', 0, 0, 0, 0, 0, 0, 'progressive', 8, 'default', -1, 'false', 'default', 'RR', 0, -1, AcqHandle2)

get_framegrabber_param (AcqHandle2, ['image_width','image_height'], ImageSize2)
dev_open_window ((ImageSize1[0] / scale) + 10, 0, ImageSize2[0] / scale, ImageSize2[1]/ scale  , 'black', WindowHandle2)

* Deactivate HDevelop update for better performance.
dev_update_off ()
grab_image_start (AcqHandle1, -1)
grab_image_start (AcqHandle2, -1)
while (true)
  dev_set_window (WindowHandle1)
  *grab_image  (Image1, AcqHandle1)
   grab_image_async (Image1, AcqHandle1, -1)
  dev_display (Image1)
  *
  dev_set_window (WindowHandle2)
  *grab_image(Image2, AcqHandle2)
  grab_image_async (Image2, AcqHandle2, -1)
  
  dev_display (Image2)
endwhile
dev_close_window ()
dev_close_window ()
close_framegrabber (AcqHandle1)
close_framegrabber (AcqHandle2)

3.新建程序,创建标定板文件

 我的标定板尺寸:外形70x70,图案56x56,直径3.5,圆心距7,阵列7x7

gen_caltab (7, 7, 0.07, 0.5, 'caltab_hc070x_56x_7_35.descr', 'caltabcaltab_hc070x_56x_7_35.ps')

执行后当前目录产生对应2个文件 ,只用描述文件。ps是photoshop文件

4.打开标定助手

引入上面描述文件

线扫描多相式,单个像素宽2.4um,焦距3.37mm,其他默认

我的海康相机cb060:

传感器类型CMOS,卷帘快门
传感器型号IMX178
像元尺寸2.4 µm × 2.4 µm
靶面尺寸1/1.8”
分辨率3072 × 2048

生成标定函数

* Calibration 03: Code generated by Calibration 03
ImageFiles := []
TmpCtrl_ReferenceIndex := -1
TmpCtrl_PlateDescription := '/opt/halcon/calib/calplate_80mm.cpd'
StartParameters := ['line_scan_polynomial',0.00337,0,0,0,0,0,2.4e-06,2.4e-06,320,0,640,480,0,0.0005,0]
TmpCtrl_FindCalObjParNames := 'sigma'
TmpCtrl_FindCalObjParValues := 1
* Calibration 03: Create calibration model for managing calibration data
create_calib_data ('calibration_object', 1, 1, CalibHandle)
set_calib_data_cam_param (CalibHandle, 0, [], StartParameters)
set_calib_data_calib_object (CalibHandle, 0, TmpCtrl_PlateDescription)
* Calibration 03: Collect mark positions and estimated poses for all plates
for Index := 0 to |ImageFiles|-1 by 1
    read_image (Image, ImageFiles[Index])
    * Calibration 03: No image files. Please load images first!
endfor
* Calibration 03: Perform the actual calibration
calibrate_cameras (CalibHandle, TmpCtrl_Errors)
get_calib_data (CalibHandle, 'camera', 0, 'params', CameraParameters)
get_calib_data (CalibHandle, 'calib_obj_pose', [0, TmpCtrl_ReferenceIndex], 'pose', CameraPose)
* Calibration 03: Adjust origin for plate thickness
set_origin_pose (CameraPose, 0.0, 0.0, 0.001, CameraPose)
stop ()

5.标定

线阵相机矫正所需参数共17个

11个参数为内参CamParam:= [Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight, Vx, Vy, Vz]

6个参数分别为x,y,z三个轴的旋转角度和x,y,z三个轴的平移量

4. ------------------------

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#和Halcon可以与海康相机进行图像采集。通过使用海康相机SDK和Halcon库,可以实现连接海康相机采集图像、进行模板匹配、圆形拟合、直线拟合、像素标定、保存图片、串口通讯和网口通讯等功能。\[1\]在代码示例中,可以看到一些与海康相机相关的操作,如查找设备、打开设备、设置触发方式、开始拍照、停止拍照等。\[2\]通过调用相应的函数和方法,可以实现工业相机采集图像数据转化。例如,在示例代码中,通过设置标志位为false来停止采集,调用相机的停止采集函数,然后进行相应的控件操作。\[3\]因此,使用C#和Halcon可以实现与海康相机的图像采集。 #### 引用[.reference_title] - *1* [四相机测量项目源码,海康相机SDK,C#+halcon,写得比较通俗易懂,四相机四种测量模式](https://blog.csdn.net/m0_74906203/article/details/127663936)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Halcon 进阶 三 C#实现 Halcon与工业相机海康),视觉解析二维码](https://blog.csdn.net/yuchenlove_/article/details/120475066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [C#和Halcon联合编程完成海康工业相机数据转化](https://blog.csdn.net/qq_35701589/article/details/127098302)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值