命名空间:netMarketing.vision.CCDMotion.visionFunc.vFunBaseMethod
功能:视觉基础方法, 本类是对halcon算子的直接封装,本类的方法名和halcon对应算子同名字, 以方便对应查看.
功能详细说明:
vFunBaseMethod以C#的函数调用方式封装了halcon的常用算子,由于halcon的算子有数千个,这个类只封装了勇哥常用的算子,目前正在持续增加中。
常用函数列表:
参考例子:
private void visionFun7() { //分割粘连区域(1) var winHandle = win.HalconWindow; var Image1 = halcon.read_image("C:/Users/Administrator/Desktop/netMarketing视觉测试/img/201807111531290842377491.jpg"); (HTuple Width, HTuple Height) = halcon.get_image_size(Image1); halcon.set_part(winHandle, 0, 0, Height, Width); halcon.dispObj(winHandle, Image1); //* 自动阈值分割 var Region1 = halcon.bin_threshold(Image1); //* 分割后选择的是所需的背景,所以求反一次 var RegionComplement = halcon.complement(Region1); halcon.dev_display(Image1, winHandle); //* dev_display(RegionComplement) //* 做一次闭运算 var RegionClosing = halcon.closing_circle(RegionComplement, 3.5); //* 空洞填充 var RegionFillUp = halcon.fill_up_shape(RegionClosing, vFunBaseMethod.fillShapeFeatureEnum.area, 1, 100); //* 欧式距离函数的距离变换 var DistanceImage = halcon.distance_transform(RegionFillUp, vFunBaseMethod.dtMetricEnum.octagonal, true, Width, Height); halcon.debugSaveBinImg(DistanceImage, null, Width, Height, "DistanceImage.tiff"); //* int4转byte var ImageConverted = halcon.convert_image_type(DistanceImage, vFunBaseMethod.citNewTypeEnum.byte0); //* 图像取反 var ImageInvert = halcon.invert_image(ImageConverted); //* 增加对比度 var ImageScaleMax = halcon.scale_image_max(ImageInvert); //* 高斯平滑处理 var ImageGauss = halcon.gauss_image(ImageScaleMax, 11); //* 分水岭算法 var Basins = halcon.watersheds_threshold(ImageGauss, 10); //* 计数统计为29个 var Number1 = halcon.count_obj(Basins); //* 发现有小区域面积干扰,重新选择区域 var SelectedRegions = halcon.select_shape(Basins, vFunBaseMethod.selectShapeFeatureEnum.area, vFunBaseMethod.selectShapeOperationEnum.and, 5267.61, 119050); halcon.dispObj2(winHandle, SelectedRegions,2); //* 获取到正确的数目25 Number1 = halcon.count_obj(SelectedRegions); }
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!
本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:


