将常用的Mcal模块函数梳理了一下

代码没有调试,可能会有Bug

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Matrox.MatroxImagingLibrary;
using System.IO;namespace WindowsFormsApplication1
{public class MilCal{MIL_ID MilSystem = MIL.M_NULL;MIL_ID MilCalibration = MIL.M_NULL;String strCalFilePath = "";public MilCal(MIL_ID MilSystem, String strMac){if (MilSystem == MIL.M_NULL)return;this.MilSystem = MilSystem;this.strCalFilePath = strMac;MIL.McalRestore(strCalFilePath, MilSystem, MIL.M_DEFAULT, ref MilCalibration);}public MilCal(MIL_ID MilCalID){if (MilCalID == MIL.M_NULL)return;StringBuilder ObjectFilePath = new StringBuilder();MIL.MobjInquire(MilCalID, MIL.M_OWNER_SYSTEM, ref MilSystem);MIL.MobjInquire(MilCalID, MIL.M_OBJECT_FILE_PATH, ObjectFilePath);strCalFilePath = ObjectFilePath.ToString();}public MilCal(MIL_ID MilSystem, MIL_ID MilCalID){if (MilSystem == MIL.M_NULL)return;this.MilSystem = MilSystem;this.MilCalibration = MilCalID;StringBuilder ObjectFilePath = new StringBuilder();MIL.MobjInquire(MilCalID, MIL.M_OBJECT_FILE_PATH, ObjectFilePath);strCalFilePath = ObjectFilePath.ToString();}public void MilCalFree(){if (MilCalibration != MIL.M_NULL){MIL.McalFree(MilCalibration);MilCalibration = MIL.M_NULL;}}public int MilCalCamera(ref MIL_ID MilInputImg, MIL_INT ChessGrid_Rows, MIL_INT ChessGrid_Cols, double ChessGrid_RowSpacing, double ChessGrid_ColSpacing){if (MilInputImg == MIL.M_NULL){return 1;}MilCalFree();MIL.McalAlloc(MilSystem, MIL.M_DEFAULT, MIL.M_DEFAULT, ref MilCalibration);if (ChessGrid_Rows * ChessGrid_Cols > 0)MIL.McalGrid(MilCalibration, MilInputImg, 0, 0, 0,ChessGrid_Rows, ChessGrid_Cols,ChessGrid_RowSpacing, ChessGrid_ColSpacing,MIL.M_DEFAULT, MIL.M_CHESSBOARD_GRID);else{MIL.McalControl(MilCalibration, MIL.M_GRID_PARTIAL, MIL.M_ENABLE);MIL.McalGrid(MilCalibration, MilInputImg, 0.0, 0.0,MIL.M_NULL, MIL.M_UNKNOWN, MIL.M_UNKNOWN,ChessGrid_RowSpacing, ChessGrid_ColSpacing,MIL.M_FULL_CALIBRATION, MIL.M_CHESSBOARD_GRID);}if (MilCalGetCalState() == true)return 0;MilCalFree();return 2;}public void MilCalSave(string strFilePathAndFileName){MIL.McalSave(strFilePathAndFileName, MilCalibration, MIL.M_DEFAULT);}public void MilCalTransPixel2World(double dPixelX, double dPixelY, ref double dWordX, ref double dWordY){if (MilCalibration != MIL.M_NULL){MIL.McalTransformCoordinate(MilCalibration,MIL.M_PIXEL_TO_WORLD,dPixelX, dPixelY, ref dWordX, ref dWordY);}}public void MilCalTransWorld2Pixel(double dWordX, double dWordY, ref double dPixelX, ref double dPixelY){if (MilCalibration != MIL.M_NULL){MIL.McalTransformCoordinate(MilCalibration,MIL.M_WORLD_TO_PIXEL,dWordX, dWordY, ref dPixelX, ref dPixelY);}}public void MilCalTransPixel2World(double dLenPixel, ref double dLenWorld){if (MilCalibration != MIL.M_NULL){MIL.McalTransformResult(MilCalibration, MIL.M_PIXEL_TO_WORLD, MIL.M_LENGTH, dLenPixel, ref dLenWorld);}}public void MilCalTransWorld2Pixel(double dLenWorld, ref double dLenPixel){if (MilCalibration != MIL.M_NULL){MIL.McalTransformResult(MilCalibration, MIL.M_WORLD_TO_PIXEL, MIL.M_LENGTH, dLenWorld, ref dLenPixel);}}public bool MilCalGetCalState(){MIL_ID CalibrationStatus = MIL.M_NULL;MIL.McalInquire(MilCalibration, MIL.M_CALIBRATION_STATUS + MIL.M_TYPE_MIL_INT, ref CalibrationStatus);return CalibrationStatus == MIL.M_CALIBRATED;}public void MilCalGetCalInfo(ref int nRowNum, ref int nColNum, ref double dRowSpacing, ref double dColSpacing){MIL.McalInquire(MilCalibration, MIL.M_COLUMN_NUMBER + MIL.M_TYPE_MIL_INT, ref nColNum);MIL.McalInquire(MilCalibration, MIL.M_ROW_NUMBER + MIL.M_TYPE_MIL_INT, ref nRowNum);MIL.McalInquire(MilCalibration, MIL.M_COLUMN_SPACING, ref dColSpacing);MIL.McalInquire(MilCalibration, MIL.M_ROW_SPACING, ref dRowSpacing);}public void MilCalGetCalPoints(ref double[] dPtsX, ref double[] dPtsY){MIL_INT PtNum = 0;MIL.McalInquire(MilCalibration, MIL.M_CALIBRATION_IMAGE_POINTS_X + MIL.M_NB_ELEMENTS + MIL.M_TYPE_MIL_INT, ref PtNum);dPtsX = new double[PtNum];MIL.McalInquire(MilCalibration, MIL.M_CALIBRATION_IMAGE_POINTS_X, dPtsX);MIL.McalInquire(MilCalibration, MIL.M_CALIBRATION_IMAGE_POINTS_Y + MIL.M_NB_ELEMENTS + MIL.M_TYPE_MIL_INT, ref PtNum);dPtsY = new double[PtNum];MIL.McalInquire(MilCalibration, MIL.M_CALIBRATION_IMAGE_POINTS_Y, dPtsY);}public void MilCalDrawAxis(MIL_ID MilGraContext, MIL_ID MilGraList, double dColor){MIL.MgraColor(MilGraContext, dColor);MIL.McalDraw(MilGraContext, MilCalibration, MilGraList, MIL.M_DRAW_RELATIVE_COORDINATE_SYSTEM + MIL.M_DRAW_FRAME, MIL.M_DEFAULT, MIL.M_DEFAULT);}public void MilCalDrawPoints(MIL_ID MilGraContext, MIL_ID MilGraList, double dColor){MIL.MgraColor(MilGraContext, dColor);MIL.McalDraw(MilGraContext, MilCalibration, MilGraList, MIL.M_DRAW_IMAGE_POINTS, MIL.M_DEFAULT, MIL.M_DEFAULT);}public void MilCalDrawRegion(MIL_ID MilGraContext, MIL_ID MilGraList, double dColor){MIL.MgraColor(MIL.M_DEFAULT, dColor);MIL.McalDraw(MilGraContext, MilCalibration, MilGraList, MIL.M_DRAW_VALID_REGION, MIL.M_DEFAULT, MIL.M_DEFAULT);}}
}

Mil学习之Mcal相关推荐

  1. 【Autosar】学习总结-MCAL

    一.简介 MCAL:微控制器抽象层:位于BSW层中的最下层: MCAL细分,可将驱动分为:微控制器驱动.存储器驱动.通信驱动.IO驱动: 二.MCAL的配置(EB-Tresos) 1.PORT 我理解 ...

  2. Mil学习之Mim的简单操作

    1. 旋转矩形区域的矫正 MIL.MbufAllocColor(MilSystem, MIL.MbufInquire(MilImage, MIL.M_SIZE_BAND, MIL.M_NULL),nW ...

  3. Mil学习之Mapp

    一.什么是Mapp 以Mapp为前缀的函数构成了应用程序模块.应用程序模块允许您初始化和控制MIL应用程序的执行环境.除其他外,该模块还提供集成调试服务.用于基准测试的高性能计时器.可移植线程和事件处 ...

  4. Mil学习之Mbuf

    一.什么是Mbuf 以Mbuf为前缀的函数构成缓冲模块.缓冲区模块允许您分配和控制数据缓冲区(存储区域)和容器(容纳缓冲区和其他容器的MIL对象),这些通常由多个MIL模块的功能操作.缓冲区的示例包括 ...

  5. 模式识别 - 处理多演示样例学习(MIL)特征(matlab)

    处理多演示样例学习(MIL)特征(matlab) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27206325 多演示样例学习( ...

  6. ObjecT4:On-line multiple instance learning (MIL)学习

    原文链接:http://blog.csdn.net/ikerpeng/article/details/19235391 用到论文,直接看翻译. 文章:Robust object tracking wi ...

  7. 多示例学习 MIL(multiple instance learning) 理解

    多示例学习举例:假如一段视频由很多张图组成,假如10000张,那么我们要判断视频里是否包含某一物体,比如气球.单张标注每一帧是否有气球太耗时,通常人们看一遍说这个视频里是否有气球,就得到了多示例学习的 ...

  8. 小猫爪:S32K3学习笔记08-S32K3之MCAL中的FEE

    小猫爪:S32K3学习笔记08-S32K3之MCAL的FEE模块 1 前言 2 Fls模块 3 Fee模块 3.1 存储结构 3.2 常见操作步骤 3.2.1 Cluster Scan 3.2.2 B ...

  9. 基于Python和OpenCV的目标跟踪学习教程 Object Tracking using Python and OpenCV

    实现12种不同的算法来跟踪视频和网络摄像头中的对象! 你会学到: 使用Python和OpenCV跟踪视频和网络摄像头中的对象 理解跟踪算法的基本直觉 实现12种跟踪算法 了解对象检测和对象跟踪之间的区 ...

最新文章

  1. Android Environment 的作用以及常用的方法
  2. 汽车常识全面介绍 - 车身
  3. 3. 定义10个字节的键盘缓冲区,然后键盘输入字符填满该缓冲区,做如下工作: (1)分别将输入键盘缓冲区的字符按数字,小写字母,大写字母,其他字符进行计数; 分别将这些计数值显示出来。 (2)分别将这
  4. 自己动手写web服务器一(浏览器的访问信息)
  5. 【统计学习方法】感知机笔记
  6. pcl程序如何在linux上运行,Ubuntu系统安装PCL 1.9及以上版本
  7. rstudio运行python_RStudio 1.2发布,改进对Python chunks,R脚本等的测试和支持
  8. linux cd 一些用法
  9. 【进阶3-4期】深度解析bind原理、使用场景及模拟实现
  10. 通达信波段王指标公式主图_通达信股票波段王+精准买卖提示主图指标源码公式_通达信指标公式_指标公式网...
  11. Shader混合模式--正片叠底、滤色、叠加
  12. 互联网医院系统软件开发|互联网医院管理系统开发的好处
  13. 计算机知识与技能竞赛配图,第七届”高教杯“全国大学生先进成图技术与产品信息建模创新大赛机械类计算机绘图试卷.doc...
  14. java timeunit_java并发之TimeUnit
  15. in-place运算总结
  16. Python学习.第六天.字典
  17. 数据中台是什么,不是什么,就这么拨乱反正吧 by 傅一平
  18. 06人月神话读书笔记之二
  19. signature=a6cb6ce8d8e12b283f4fc618f250a727,MS12-041:Windows 内核模式驱动程序中的漏洞可能会允许特权提升:2012 年 6 月 12 日...
  20. select二级联动价格策略+js的eval()

热门文章

  1. js编码规范(参考、推荐、强制 含eslint)
  2. 默纳克刷机,默纳克刷协议,默纳克显示板 外呼板协议更改 烧录 默纳克各种软件各种刷机
  3. 阿里云发布性能测试 PTS 2.0:低成本、高效率、多场景压测,业务稳定性保障利器
  4. 【C语言】案例二十五 兔子数列(斐波那契数列)
  5. 解散群通知怎么写_要解散群,怎么说得体,大方
  6. could not open single-table tablespace file
  7. 四足控制中的公式理解
  8. 23 WebGL的视点和视线
  9. MATLAB中插值拟合曲线
  10. 2021百度人脸对比(附代码)