目录
一、MIL视觉常用五大对象
二、加载和保存图像的方法
三、程序代码
一、MIL视觉常用五大对象
MIL视觉常用五大对象
Application | 开发的程序,用于控制和执行MIL程序的基础 |
System | System代表为一个包含CPU或GPU、内存或显存和图像控制器的单元分配的一个虚拟访问对象 |
Digtizer | 对相机的设置通过它来完成 |
Display | 显示操作都由它完成 |
Data Buffer | 图像数据的储存 |
MappAllocDefault | 分配默认应用 |
MdispAlloc | 分配显示Display |
MdispSelectWindow | 选择窗口显示图像 |
MbufRestore | 从本地读取一张图像分配于缓存中 |
MbufSave | 保存图像至生成目录 |
MdispFree | 释放Display内存资源 |
MbufFree | 释放图像数据内存资源 |
MappFreeDefault | 释放五类内存资源 |
WinForm界面
文章图片
Form代码
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;
//引用MIL库
using Matrox.MatroxImagingLibrary;
namespace Showpic_20220301
{
public partial class Form1 : Form
{MIL_ID milapplication = MIL.M_NULL;
//程序标识符
MIL_ID milsystem = MIL.M_NULL;
//系统标识符
MIL_ID mildisplay = MIL.M_NULL;
//显示标识符
MIL_ID milimage = MIL.M_NULL;
//图像缓存区标识符public Form1()
{
//窗体初始化
InitializeComponent();
//分配默认应用
MIL.MappAllocDefault(MIL.M_DEFAULT, ref milapplication, ref milsystem, MIL.M_NULL, MIL.M_NULL, MIL.M_NULL);
//加载图像
showpic();
}///
/// 加载并显示图像
///
public void showpic()
{
//从本地读取一张图像分配于缓存中
MIL.MbufRestore("C:/Users/Asus/Desktop/guowei.jpg", milsystem, ref milimage);
//MIL.MbufImport("C:/Users/Asus/Desktop/guowei.jpg", MIL.M_DEFAULT, MIL.M_RESTORE, milsystem, ref milimage);
//分配显示display
if (mildisplay != MIL.M_NULL)
{
MIL.MdispFree(mildisplay);
}MIL.MdispAlloc(milsystem, MIL.M_DEFAULT, "m_default", MIL.M_WINDOWED, ref mildisplay);
//选择窗口显示图像
MIL.MdispSelectWindow(mildisplay, milimage, this.Handle);
//图像居中且自适应窗口
MIL.MdispControl(mildisplay, MIL.M_SCALE_DISPLAY, MIL.M_ENABLE);
}
///
/// 关闭窗口时释放缓存
///
///
///
private void forml_close(object sender, EventArgs e)
{
MIL.MbufFree(milimage);
MIL.MdispFree(mildisplay);
MIL.MappFreeDefault(milapplication, milsystem, MIL.M_NULL, MIL.M_NULL, MIL.M_NULL);
}
///
/// 自适应窗口大小
///
///
///
private void forml_sizechanged(object sender, EventArgs e)
{
this.Refresh();
}
}
}
Form1.Desinger代码
namespace Showpic_20220301
{
partial class Form1
{
///
/// 必需的设计器变量。
///
private System.ComponentModel.IContainer components = null;
///
/// 清理所有正在使用的资源。
///
/// 如果应释放托管资源,为 true;否则为 false。
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}#region Windows 窗体设计器生成的代码///
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
///
private void InitializeComponent()
{
this.SuspendLayout();
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Name = "Form1";
this.Text = "gw";
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.forml_close);
this.SizeChanged += new System.EventHandler(this.forml_sizechanged);
this.ResumeLayout(false);
}#endregion
}
}
程序运行结果
文章图片
参考原文MIL教程_文洲的专栏-CSDN博客
文章图片
https://blog.csdn.net/wenzhou1219/category_9262307.html
【MIL学习日志|MIL视觉基础加载和保存图像20220301】
推荐阅读
- 趣学深度学习|图像修复、专栏目录(推荐查阅顺序)
- YOLOv5|YOLOv5网络结构+代码+应用详解|CSDN创作打卡
- pytorch|Grad-CAM简介
- 大数据|基于图卷积堆叠的双向单向LSTM神经网络的地铁客流预测
- 技术交流|详解用OpenCV绘制各类几何图形
- 神经网络|如何从频域的角度解释CNN(卷积神经网络)()
- 人工智能|Github热榜(2021年33篇最酷AI论文综述!)
- 数字图像处理|数字图像处理5(图像金字塔)
- 深度学习|在Android上部署TF目标检测模型