Mil学习之 MimLocateEvent 获取特定属性的像素坐标

Posted Thomas会写字

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mil学习之 MimLocateEvent 获取特定属性的像素坐标相关的知识,希望对你有一定的参考价值。

适用于获取图像中指定范围的像素坐标,以及每个像素坐标对应的具体像素值。

Mim模块下的 MimLocateEvent 函数

MIL_ID MilApplication = MIL.M_NULL;
MIL_ID MilSystem = MIL.M_NULL;
MIL_ID MilImage = MIL.M_NULL;
MIL_ID EventResult = MIL.M_NULL;

MIL_INT NbEvent = 0;
MIL_INT PositionYSize = 0;
MIL_INT PositionXSize = 0;
MIL_INT ValueSize = 0;
MIL_INT[] PositionX;
MIL_INT[] PositionY;
MIL_INT[] Value;

MIL.MappAlloc(MIL.M_NULL, MIL.M_DEFAULT, ref MilApplication);
MIL.MsysAlloc(MIL.M_DEFAULT, "M_SYSTEM_HOST", MIL.M_DEFAULT, MIL.M_DEFAULT, ref MilSystem);
MIL.MbufImport(IMAGE_FILE, MIL.M_DEFAULT, MIL.M_RESTORE + MIL.M_NO_GRAB + MIL.M_NO_COMPRESS, MilSystem, ref MilImage);

MIL.MimAllocResult(MilSystem, 640 * 480, MIL.M_EVENT_LIST, ref EventResult);
MIL.MimLocateEvent(MilImage, EventResult, MIL.M_IN_RANGE, 128.0, 228.0);

MIL.MimGetResult(EventResult, MIL.M_NB_EVENT, ref NbEvent); // 获取符合条件的元素数量
MIL.MimGetResult(EventResult, MIL.M_POSITION_X + MIL.M_NB_ELEMENTS + MIL.M_TYPE_MIL_INT, ref PositionXSize); // 这个值是 640 * 480
MIL.MimGetResult(EventResult, MIL.M_POSITION_Y + MIL.M_NB_ELEMENTS + MIL.M_TYPE_MIL_INT, ref PositionYSize); // 这个值是 640 * 480
MIL.MimGetResult(EventResult, MIL.M_VALUE + MIL.M_NB_ELEMENTS + MIL.M_TYPE_MIL_INT, ref ValueSize); // 这个值是 640 * 480
PositionX = new MIL_INT[PositionXSize];
PositionY = new MIL_INT[PositionYSize];
Value = new MIL_INT[ValueSize];
MIL.MimGetResult(EventResult, MIL.M_POSITION_X, PositionX); // 获取 X 坐标
MIL.MimGetResult(EventResult, MIL.M_POSITION_Y, PositionY); // 获取 Y 坐标
MIL.MimGetResult(EventResult, MIL.M_VALUE, Value);          // 获取 像素值

MIL.MimFree(EventResult);
MIL.MbufFree(MilImage);
MIL.MsysFree(MilSystem);

以上是关于Mil学习之 MimLocateEvent 获取特定属性的像素坐标的主要内容,如果未能解决你的问题,请参考以下文章

Mil学习之Mim的简单操作

Mil学习之Mim的简单操作

Mil学习之Mim的简单操作

Mil学习之 MimStatCalculate 图片信息统计

Mil学习之Mapp

Mil学习之Mdisp