命名空间: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,转载请注明出处!讨论可扫码加群:



少有人走的路



















