命名空间:netMarketing.vision.halcon.multiVisionWin
功能:基于halcon视图的多窗口控件,最多四个窗口
功能详细说明:
multVisionWin是一个拥有四个halconWin控件的多窗体控件,由于可以设置为单窗口显示还是四窗口显示,因此许多时候可以替代halconWin控件来使用。
multVisionWin除了拥有halconwin控件的功能与设定,还拥有自己的特有的设定项。
常用函数列表:
参考例子:
代码:
using HalconDotNet; using netMarketing.vision.CCDMotion.visionFunc; using netMarketing.vision.halcon; using sharClass; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace visionTest { public partial class Form1 : Form { private halconWin win = null; private vFunBaseMethod halcon = new vFunBaseMethod(); public Form1() { InitializeComponent(); multiVisionWin1.leftupLabTxt = "测试窗口"; multiVisionWin1.windowNumber = 1; multiVisionWin1.setMultiVisionWin(null, null, null, null, true, true, true, true, "", "", "", ""); win = multiVisionWin1.getLeftUpHwin(); } private void Form1_Load(object sender, EventArgs e) { this.Size = new Size(584, 550); } private void da1ToolStripMenuItem_Click(object sender, EventArgs e) { win.grabphoto(); } private void ssssdddToolStripMenuItem_Click(object sender, EventArgs e) { visionFun7(); } 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,转载请注明出处!讨论可扫码加群:


