概述
适用于多个相机的场景,此时多个相机拍图的均一性是有一定差异的,我们可以使用Mil的模块进行一定的补偿校正。
Mim模块的M_FLAT_FIELD_CONTEXT属性。
需要校正相机的暗图
需要校正相机的亮图
标准相机的暗图
需要校正的输入图片
需要校正的输出图片
// This code was generated by MIL CoPilot 10.40.881
// on Thursday, June 24, 2021
// Compiling and running generated code will require :
// MIL 10 with Service Pack 4
using System;
using System.Text;
using Matrox.MatroxImagingLibrary;
namespace MilCoPilot_Untitled
{
class Program
{
private const string IMAGE_FILE = @"C:UserskakieDesktopblack.bmp";
private const string IMAGE1_FILE = @"C:UserskakieDesktopwhite.bmp";
private const string IMAGE2_FILE = @"C:UserskakieDesktopokBlack.bmp";
static void Main(string[] args)
{
MIL_ID MilApplication = MIL.M_NULL;
MIL_ID MilSystem = MIL.M_NULL;
MIL_ID ProcessingContext = MIL.M_NULL;
MIL_ID black = MIL.M_NULL;
MIL_ID white = MIL.M_NULL;
MIL_ID okBlack = MIL.M_NULL;
MIL_ID ImageTest = MIL.M_NULL;
MIL_ID MimFlatFielddestination = MIL.M_NULL;
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 black);
MIL.MbufImport(IMAGE1_FILE, MIL.M_DEFAULT, MIL.M_RESTORE + MIL.M_NO_GRAB + MIL.M_NO_COMPRESS, MilSystem, ref white);
MIL.MbufImport(IMAGE2_FILE, MIL.M_DEFAULT, MIL.M_RESTORE + MIL.M_NO_GRAB + MIL.M_NO_COMPRESS, MilSystem, ref okBlack);
MIL.MbufRestore(@"C:UserskakieDesktoptest.bmp", MilSystem, ref ImageTest);
MIL.MbufClone(ImageTest, MIL.M_DEFAULT, MIL.M_DEFAULT, MIL.M_DEFAULT, MIL.M_DEFAULT, MIL.M_DEFAULT, MIL.M_DEFAULT, ref MimFlatFielddestination);
MIL.MimAlloc(MilSystem, MIL.M_FLAT_FIELD_CONTEXT, MIL.M_DEFAULT, ref ProcessingContext);
// Control Block for Processing Context
MIL.MimControl(ProcessingContext, MIL.M_DARK_IMAGE, black);
MIL.MimControl(ProcessingContext, MIL.M_FLAT_IMAGE, white);
MIL.MimControl(ProcessingContext, MIL.M_OFFSET_IMAGE, okBlack);
MIL.MimControl(ProcessingContext, MIL.M_GAIN_CONST, 255.0);
MIL.MimFlatField(ProcessingContext, MIL.M_NULL, MIL.M_NULL, MIL.M_PREPROCESS);
MIL.MimFlatField(ProcessingContext, ImageTest, MimFlatFielddestination, MIL.M_DEFAULT);
Console.WriteLine("Press <ENTER> to continue");
Console.ReadKey();
MIL.MbufFree(MimFlatFielddestination);
MIL.MbufFree(ImageTest);
MIL.MimFree(ProcessingContext);
MIL.MbufFree(okBlack);
MIL.MbufFree(white);
MIL.MbufFree(black);
MIL.MsysFree(MilSystem);
MIL.MappFree(MilApplication);
}
}
}
最后
以上就是俭朴烧鹅为你收集整理的Mil学习之 MimFlatField 多相机图像均一性校正的全部内容,希望文章能够帮你解决Mil学习之 MimFlatField 多相机图像均一性校正所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复