C#Halcon扇形/圆环缺陷检测(极坐标变换法)
扇形交互绘制与极坐标变换插件(加载图像—绘制扇形—极坐标变换—图像返回:运行效果)
应用场景:缺陷检测,OCR识别,二维码识别,辅助定位等场景
绘制扇形:原型算子create_drawing_object_circle_sector||create_drawing_object_ellipse_sector
本次Demo小编用的是标准圆形绘制的扇形,目的是为了后面极坐标变换
如果不涉及极坐标变换,可以采用椭圆扇形
源码原理参考
Halcon人机交互绘图方式
扇形区域转矩形区域:原型算子polar_trans_image_ext
HOperatorSet.GenEmptyObj(out ho_PolarTransImage);
if(hv_end_angle< hv_start_angle)
{
HTuple ExpTmpLocalVar_start_angle = hv_start_angle - ((new HTuple(360)).TupleRad());
hv_start_angle.Dispose();
hv_start_angle = ExpTmpLocalVar_start_angle;
}
double hv_ContouWidth = (hv_end_angle - hv_start_angle) * hv_ra;
double hv_ContouHeight = StepLength * 2;
HOperatorSet.GenEmptyObj(out ImageSector);
HOperatorSet.ReduceDomain(HIMage, ho_RegionSector, out ImageSector);
ho_PolarTransImage.Dispose();
HOperatorSet.PolarTransImageExt(ImageSector, out ho_PolarTransImage, hv_R_Centr,
hv_C_Centr, hv_end_angle, hv_start_angle, hv_ra + StepLength, hv_ra - StepLength,
hv_ContouWidth, hv_ContouHeight, "bilinear");
HW.ClearWindow();
FitImage(ho_PolarTransImage, hWC);
矩形区域转扇形区域:原型算子polar_trans_region_inv
HOperatorSet.GenEmptyObj(out ho_XYTransImage);
ho_XYTransImage.Dispose();
HOperatorSet.PolarTransImageInv(ho_PolarTransImage, out ho_XYTransImage, hv_R_Centr,
hv_C_Centr, hv_end_angle, hv_start_angle, hv_ra + StepLength, hv_ra - StepLength,
width, height, "nearest_neighbor");
HW.ClearWindow();
FitImage(ho_XYTransImage, hWC);
源码原理参考
Halcon 极坐标变换
原文地址:https://blog.csdn.net/2202_75557553/article/details/145398424
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/526369.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/526369.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!