RegionsOperatorsmRgnRelativeSize Method |
![]() |
Namespace: MediaCy.IQL.Operators
<ExtensionAttribute> Public Shared Function mRgnRelativeSize ( regions As McRegions ) As McMeasure
Here is an set of access functions with a test macro that shows how to set the RefSizeOverride and FloatResults as well as how to access the supplemental resuls. The utility functions are shown first with the test macro at the end. The macro will need references to MediaCy.Addins.Measurements.dll and to MediaCy.IQL.Features.dll Private Function luGetMcMMData() As MediaCy.Addins.Measurements.McMMData Dim imgA As McImage = ThisApplication.ActiveImage If imgA Is Nothing Then Return Nothing Dim mmData As MediaCy.Addins.Measurements.McMMData = imgA.MeasurementsData Return mmData End Function 'luGetMcMMData Private Function luGetMeasuresMcRegions() As MediaCy.IQL.Features.McRegions Dim mmData As MediaCy.Addins.Measurements.McMMData = luGetMcMMData If ( mmData Is Nothing OrElse mmData.Count = 0 ) Then Return Nothing Dim mcregionsMeas As MediaCy.IQL.Features.McRegions = mmData.SubFeature(0).GetFeatures Return mcregionsMeas End Function 'luGetMeasuresMcRegions Private Function luGetRelativeSizeMcMeasure() As MediaCy.IQL.Features.IMcMeasure Dim mcregionsMeas As MediaCy.IQL.Features.McRegions = luGetMeasuresMcRegions() If (mcregionsMeas Is Nothing) Then Return Nothing Dim measRelSize As MediaCy.IQL.Features.IMcMeasure = mcregionsMeas.mRgnRelativeSize Return measRelSize End Function 'luGetRelativeSizeMcMeasure Private Function luSetRelativeSizeReferenceOverride( ByVal dRefSizeOverride As Double, Optional ByVal bFloatResults As Boolean = False) As Boolean Dim measRelSize As MediaCy.IQL.Features.IMcMeasure = luGetRelativeSizeMcMeasure() If measRelSize Is Nothing Then Return False Dim arrayRefSizeOverride(0 To 3) As Object arrayRefSizeOverride(0) = "RefSizeOverride" arrayRefSizeOverride(1) = dRefSizeOverride arrayRefSizeOverride(2) = "FloatResults" arrayRefSizeOverride(3) = bFloatResults measRelSize.UserData = arrayRefSizeOverride measRelSize.Compute luGetMcMMData.ShowMeasurements(MediaCy.Addins.Measurements.McMeasurements.enumShowMeasFlags.smfShowAll) 'update results display Return True End Function 'luSetRelativeSizeReferenceOverride Private Function luGetRelativeSizeUserDataReport() As String Dim measRelSize As MediaCy.IQL.Features.IMcMeasure = luGetRelativeSizeMcMeasure() If measRelSize Is Nothing Then Return "" Dim arUD As Object = measRelSize.UserData Dim nPairs As Integer = arUD.GetLength(0) Dim nResults As Integer = arUD.GetLength(1) If nPairs<>2 OrElse nResults<>8 Then MsgBox("Bad nPairs or nResults") Dim strR As String = "*** mRgnRelativeSize.UserData values ****" + vbCrLf strR = strR + "nPairs " + CStr(nPairs) + " nResults " + CStr(nResults) + vbCrLf Dim iR As Integer For iR = 0 To nResults-1 Dim strKey As String = CStr(arUD(0,iR)) Dim varValue As Object = arUD(1,iR) Dim strValue As String If varValue Is Nothing Then strValue = "Nothing" Else strValue = CStr( varValue) End If strR = strR + "Key: " + strKey + " Value: " + strValue + vbCrLf Next 'iR Return strR End Function 'luGetRelativeSizeUserDataReport Public Sub TestRelativeSizeOverride Dim dNewRefSize As Double = CDbl( InputBox( "Reference Size Override: ", "RelativeSize Reference Size Override", "0.0")) Dim mbrFloatResults As Integer = MsgBox( "Float Relative Size Results?", vbOkCancel, "Make RelativeSize Float") Dim bFloatResults As Boolean = (mbrFloatResults = vbOK) Dim bOK As Boolean = luSetRelativeSizeReferenceOverride( dNewRefSize, bFloatResults) Dim strReport As String If bOK Then strReport = luGetRelativeSizeUserDataReport Else strReport = "No ActiveImage or no measurements" End If ThisApplication.Output.Clear ThisApplication.Output.PrintMessage( strReport) End Sub 'TestRelativeSizeOverride Here is the result output from running TestRelativeSizeOverride on the Spots.tif sample image with Reference Size Override set to 0.0 and clicking OK for the "Float Relative Size Results?" question. *** mRgnRelativeSize.UserData values **** nPairs 2 nResults 8 Key: LastReferenceSize Value: 278.384615384615 Key: LastSmallSizeCount Value: 39 Key: LastNonSmallSizeCount Value: 3 Key: LastSmallSizeArea Value: 10857 Key: LastNonSmallSizeArea Value: 2921 Key: RefSizeOverride Value: 0 Key: FloatResults Value: True Key: RawUserData Value: Nothing