校正前的畸变图像
校正后的图像
read_image(Image, 'pioneer') get_image_size(Image, Width, Height) CamParIn:=[0.00219846,-78129.2,5.46495e-06,5.5e-06,318.206,236.732,Width,Height] *依照测定的径向畸变决定相机的新参数 *算子参数: 输入样式,相机内参,输入径向畸变,输出修正后的参数 change_radial_distortion_cam_par('adaptive', CamParIn, 0, CamParamOut) *改变径向畸变图像 change_radial_distortion_image(Image,Image , ImageRectified, CamParIn, CamParamOut)
再来一个例程:
set_system ('clip_region', 'false') read_image (Image, 'pioneer') get_image_pointer1 (Image, Pointer, Type, Width, Height) dev_close_window () dev_open_window (0, 0, Width, Height, 'white', WindowHandle) rgb1_to_gray (Image, GrayImage) gen_cam_par_area_scan_division (0.00219846, -78129.2, 5.46495e-06, 5.5e-06, 318.206, 236.732, 640, 480, CamParOriginal) * extract edges in the original image dev_set_color ('red') edges_sub_pix (GrayImage, Edges, 'lanser2', 0.5, 20, 40) dev_set_color ('green') disp_continue_message (WindowHandle, 'black', 'true') stop () * Eliminating radial distortions from the extracted edges * Change the radial distortion: set kappa to 0 CamParVirtualFixed := CamParOriginal set_cam_par_data (CamParVirtualFixed, 'kappa', 0, CamParVirtualFixed) * Alternatively, the operator change_radial_distortion_cam_par can be used change_radial_distortion_cam_par ('fixed', CamParOriginal, 0, CamParVirtualFixed) change_radial_distortion_contours_xld (Edges, EdgesRectifiedFixed, CamParOriginal, CamParVirtualFixed) dev_display (GrayImage) dev_display (EdgesRectifiedFixed) disp_continue_message (WindowHandle, 'black', 'true') stop () * Change the radial distortion: mode 'fullsize' change_radial_distortion_cam_par ('fullsize', CamParOriginal, 0, CamParVirtualFullsize) change_radial_distortion_contours_xld (Edges, EdgesRectifiedFullsize, CamParOriginal, CamParVirtualFullsize) dev_display (GrayImage) dev_display (EdgesRectifiedFullsize) disp_continue_message (WindowHandle, 'black', 'true') stop () * Change the radial distortion: mode 'adaptive' change_radial_distortion_cam_par ('adaptive', CamParOriginal, 0, CamParVirtualAdaptive) change_radial_distortion_contours_xld (Edges, EdgesRectifiedAdaptive, CamParOriginal, CamParVirtualAdaptive) dev_display (GrayImage) dev_display (EdgesRectifiedAdaptive) disp_continue_message (WindowHandle, 'black', 'true') stop () * Change the radial distortion: mode 'preserve_resolution' change_radial_distortion_cam_par ('preserve_resolution', CamParOriginal, 0, CamParVirtualPreservedResolution) change_radial_distortion_contours_xld (Edges, EdgesRectifiedPreservedResolution, CamParOriginal, CamParVirtualPreservedResolution) dev_display (GrayImage) dev_display (EdgesRectifiedPreservedResolution) disp_continue_message (WindowHandle, 'black', 'true') stop () * Eliminating radial distortions from the image * Change the radial distortion: set kappa to 0 gen_radial_distortion_map (MapFixed, CamParOriginal, CamParVirtualFixed, 'bilinear') map_image (GrayImage, MapFixed, ImageRectifiedFixed) disp_continue_message (WindowHandle, 'black', 'true') stop () * In case, only one image has to be rectified, the operator * change_radial_distortion_image can be used instead of the operators * gen_radial_distortion_map together with map_image. get_cam_par_data (CamParVirtualFullsize, 'image_width', WidthVirtualFullsize) get_cam_par_data (CamParVirtualFullsize, 'image_height', HeightVirtualFullsize) gen_rectangle1 (ROI, 0, 0, HeightVirtualFullsize - 1, WidthVirtualFullsize - 1) change_radial_distortion_image (GrayImage, ROI, ImageRectifiedFullsize, CamParOriginal, CamParVirtualFullsize) dev_clear_window () dev_display (ImageRectifiedFullsize) disp_continue_message (WindowHandle, 'black', 'true') stop () get_cam_par_data (CamParVirtualAdaptive, 'image_width', WidthVirtualAdaptive) get_cam_par_data (CamParVirtualAdaptive, 'image_height', HeightVirtualAdaptive) gen_rectangle1 (ROI, 0, 0, HeightVirtualAdaptive - 1, WidthVirtualAdaptive - 1) change_radial_distortion_image (GrayImage, ROI, ImageRectifiedAdaptive, CamParOriginal, CamParVirtualAdaptive) dev_clear_window () dev_display (ImageRectifiedAdaptive) disp_continue_message (WindowHandle, 'black', 'true') stop () get_cam_par_data (CamParVirtualPreservedResolution, 'image_width', WidthVirtualPreservedResolution) get_cam_par_data (CamParVirtualPreservedResolution, 'image_height', HeightVirtualPreservedResolution) gen_rectangle1 (ROI, 0, 0, HeightVirtualPreservedResolution - 1, WidthVirtualPreservedResolution - 1) change_radial_distortion_image (GrayImage, ROI, ImageRectifiedPreservedResolution, CamParOriginal, CamParVirtualPreservedResolution) dev_clear_window () dev_display (ImageRectifiedPreservedResolution)
本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:


