public void rowProfile(Bitmap bm) { Image <Bgr, byte> im = new Image <Bgr, byte>(bm); // To initialize data array imageMetrics = new ImageMetricsInfo(); int[] data = { 0, 0, 0, 0, 0, 0, 0, 0 }; ImageMetrics_Calculate(im.Ptr, ref imageMetrics, data, Globals.isIlluminationGrid); im.Dispose(); double cv = Math.Round(imageMetrics.topToBottomVariation + 0.005, 2); double peripheryToInnerImageRatio = imageMetrics.peripheryToInnerVariation + 0.005; peripheryToInnerImageRatio = (Math.Round(peripheryToInnerImageRatio, 2)); //if (bm.Width == Globals.IRWidth) if (!Globals.isHighResolution) { Globals.currentSettings.imageMetrics.Periphery_To_Inner_IR_Light_Intensity_Variation = peripheryToInnerImageRatio; Globals.currentSettings.imageMetrics.Top_To_Bottom_IR_Light_Intensity_Variation = cv; if (peripheryToInnerImageRatio >= 0.81) { Globals.currentSettings.imageMetrics.peripheryToInnerIntensityVarLabelColor_IR = Color.Green; } else { Globals.currentSettings.imageMetrics.peripheryToInnerIntensityVarLabelColor_IR = Color.FromArgb(254, 0, 0); } if (cv <= 0.25) { Globals.currentSettings.imageMetrics.topToBottomIntensityVarLabelColor_IR = Color.Green; } else { Globals.currentSettings.imageMetrics.topToBottomIntensityVarLabelColor_IR = Color.FromArgb(254, 0, 0); } } else { Globals.currentSettings.imageMetrics.Periphery_To_Inner_White_Light_Intensity_Variation = peripheryToInnerImageRatio; Globals.currentSettings.imageMetrics.Top_To_Bottom_White_Light_Intensity_Variation = cv; if (peripheryToInnerImageRatio >= 0.81) { Globals.currentSettings.imageMetrics.peripheryToInnerIntensityVarLabelColor_WL = Color.Green; } else { Globals.currentSettings.imageMetrics.peripheryToInnerIntensityVarLabelColor_WL = Color.FromArgb(254, 0, 0); } if (cv <= 0.25) { Globals.currentSettings.imageMetrics.topToBottomIntensityVarLabelColor_WL = Color.Green; } else { Globals.currentSettings.imageMetrics.topToBottomIntensityVarLabelColor_WL = Color.FromArgb(254, 0, 0); } } //Update sector intensities values (8 sectors) from image metrics to Globals if (Globals.isIlluminationGrid) { Globals.currentSettings.imageMetrics.firstValue = data[0]; Globals.currentSettings.imageMetrics.secondValue = data[1]; Globals.currentSettings.imageMetrics.thirdValue = data[2]; Globals.currentSettings.imageMetrics.fourthValue = data[3]; Globals.currentSettings.imageMetrics.fifthValue = data[4]; Globals.currentSettings.imageMetrics.sixthValue = data[5]; Globals.currentSettings.imageMetrics.seventhValue = data[6]; Globals.currentSettings.imageMetrics.eighthValue = data[7]; } }
unsafe public extern static void ImageMetrics_Calculate(IntPtr srcImg, ref ImageMetricsInfo imageMetrics, int[] data, bool isSectorCalc);