让代码更简单

当前位置:代码狗 > 开发教程 > 工业视觉教程 > 正文

图像数组byte[]转Visionpro图像CogImage8Grey

重要:本文最后更新于2019-11-20 08:52:33,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

VisionPro绝大多数工具只能处理CogImage8Grey图像数据,因此在使用图像处理前,我们要确保图像正确。为了方便将其它类型图像转换为CogImage8Grey图像,康耐视提供了相应的CogImage8Grey类供我们使用。

图像数组byte[]转Visionpro图像CogImage8Grey

图像数组byte[]转Visionpro图像CogImage8Grey

今天有人问到怎么将图像数组数据转换为CogImage8Grey类型图像,其实通过IO流拿到的就是图像数组,C#给我们提供了相应的方法将其转换为bitmap位图,再利用康耐视提供的CogImage8Grey类方法即可转换为visionPro处理的图像数据。

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
byte[] imgByte;
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog opd = new OpenFileDialog();
if (opd.ShowDialog() == DialogResult.OK)
{
imgByte= SaveImage(opd.FileName);
}
}
/// <summary>
/// 将图片以二进制流
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public byte[] SaveImage(String path)
{
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); //将图片以文件流的形式进行保存
BinaryReader br = new BinaryReader(fs);
byte[] imgBytesIn = br.ReadBytes((int)fs.Length); //将流读入到字节数组中
return imgBytesIn;
}

private void button3_Click(object sender, EventArgs e)
{
pictureBox1.Image = Image.FromStream(new MemoryStream(imgByte));
}

private void button4_Click(object sender, EventArgs e)
{
CogToolGroup tgp = jobmanger.Job(0).VisionTool as CogToolGroup;
CogBlobTool bt = tgp.Tools["CogBlobTool1"] as CogBlobTool;
//将图像数组转换为位图
Bitmap bmp = new Bitmap(new MemoryStream(imgByte));
//将位图转换为CogImage8Grey图像
CogImage8Grey cogimg = new CogImage8Grey(bmp);
bt.InputImage = cogimg;
//运行visionPro工具测试
bt.Run();
ICogRecord myrdp = tgp.CreateLastRunRecord();
MessageBox.Show(bt.Results.GetBlobs().Count.ToString());
cogRecordDisplay1.Record = myrdp.SubRecords[1];
cogRecordDisplay1.AutoFit = true;
}
CogJobManager jobmanger;
private void Form1_Load(object sender, EventArgs e)
{
jobmanger = CogSerializer.LoadObjectFromFile(@"C:\Users\Administrator\Desktop\356.vpp") as CogJobManager;
}
}

写了一个简单示例,将转换后的图像放在visionPro中运行,并没有出现任何异常。vpp文件中就一个斑点工具,通过赋值运行即可。

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏

评论 抢沙发

×

请作者吃根烤肠!

支付宝