我是靠谱客的博主 俭朴烧鹅,这篇文章主要介绍Mil学习之 MimFlatField 多相机图像均一性校正,现在分享给大家,希望可以做个参考。

        适用于多个相机的场景,此时多个相机拍图的均一性是有一定差异的,我们可以使用Mil的模块进行一定的补偿校正。

        Mim模块的M_FLAT_FIELD_CONTEXT属性。

需要校正相机的暗图

需要校正相机的暗图

需要校正相机的亮图 

需要校正相机的亮图

标准相机的暗图 

需要校正的输入图片 

需要校正的输出图片

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// 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学习之内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部