e233f0fd96
- 新增 EdgeCircleFitProcessor 算子(卡尺径向边缘检测 + Kasa/RANSAC圆拟合) - 新增 EdgeCircleFitPanel 辅助面板(拖拽画圆交互) - Ribbon快捷工具组新增「圆拟合」按钮 - 拟合后卡尺保持可编辑状态,支持调整后重新拟合 - 每次拟合自动清除上一次结果 - 拟合方法固定RANSAC,UI不暴露选择 - 结果标注简化:直线显示角度,圆显示半径和圆心坐标 - 不再显示内点/外点小圆点 - 添加中英文本地化资源
2008 lines
84 KiB
XML
2008 lines
84 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<root>
|
||
<!--
|
||
Microsoft ResX Schema
|
||
|
||
Version 2.0
|
||
|
||
The primary goals of this format is to allow a simple XML format
|
||
that is mostly human readable. The generation and parsing of the
|
||
various data types are done through the TypeConverter classes
|
||
associated with the data types.
|
||
|
||
Example:
|
||
|
||
... ado.net/XML headers & schema ...
|
||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||
<resheader name="version">2.0</resheader>
|
||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||
</data>
|
||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||
<comment>This is a comment</comment>
|
||
</data>
|
||
|
||
There are any number of "resheader" rows that contain simple
|
||
name/value pairs.
|
||
|
||
Each data row contains a name, and value. The row also contains a
|
||
type or mimetype. Type corresponds to a .NET class that support
|
||
text/value conversion through the TypeConverter architecture.
|
||
Classes that don't support this are serialized and stored with the
|
||
mimetype set.
|
||
|
||
The mimetype is used for serialized objects, and tells the
|
||
ResXResourceReader how to depersist the object. This is currently not
|
||
extensible. For a given mimetype the value must be set accordingly:
|
||
|
||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||
that the ResXResourceWriter will generate, however the reader can
|
||
read any of the formats listed below.
|
||
|
||
mimetype: application/x-microsoft.net.object.binary.base64
|
||
value : The object must be serialized with
|
||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||
: and then encoded with base64 encoding.
|
||
|
||
mimetype: application/x-microsoft.net.object.soap.base64
|
||
value : The object must be serialized with
|
||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||
: and then encoded with base64 encoding.
|
||
|
||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||
value : The object must be serialized into a byte array
|
||
: using a System.ComponentModel.TypeConverter
|
||
: and then encoded with base64 encoding.
|
||
-->
|
||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||
<xsd:element name="root" msdata:IsDataSet="true">
|
||
<xsd:complexType>
|
||
<xsd:choice maxOccurs="unbounded">
|
||
<xsd:element name="metadata">
|
||
<xsd:complexType>
|
||
<xsd:sequence>
|
||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||
</xsd:sequence>
|
||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||
<xsd:attribute name="type" type="xsd:string" />
|
||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||
<xsd:attribute ref="xml:space" />
|
||
</xsd:complexType>
|
||
</xsd:element>
|
||
<xsd:element name="assembly">
|
||
<xsd:complexType>
|
||
<xsd:attribute name="alias" type="xsd:string" />
|
||
<xsd:attribute name="name" type="xsd:string" />
|
||
</xsd:complexType>
|
||
</xsd:element>
|
||
<xsd:element name="data">
|
||
<xsd:complexType>
|
||
<xsd:sequence>
|
||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||
</xsd:sequence>
|
||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||
<xsd:attribute ref="xml:space" />
|
||
</xsd:complexType>
|
||
</xsd:element>
|
||
<xsd:element name="resheader">
|
||
<xsd:complexType>
|
||
<xsd:sequence>
|
||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||
</xsd:sequence>
|
||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||
</xsd:complexType>
|
||
</xsd:element>
|
||
</xsd:choice>
|
||
</xsd:complexType>
|
||
</xsd:element>
|
||
</xsd:schema>
|
||
<resheader name="resmimetype">
|
||
<value>text/microsoft-resx</value>
|
||
</resheader>
|
||
<resheader name="version">
|
||
<value>2.0</value>
|
||
</resheader>
|
||
<resheader name="reader">
|
||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||
</resheader>
|
||
<resheader name="writer">
|
||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||
</resheader>
|
||
<data name="App_Title" xml:space="preserve">
|
||
<value>XplorePlane X-Ray Inspection System</value>
|
||
</data>
|
||
<data name="Menu_File" xml:space="preserve">
|
||
<value>File</value>
|
||
</data>
|
||
<data name="Menu_Settings" xml:space="preserve">
|
||
<value>Settings</value>
|
||
</data>
|
||
<data name="Button_OK" xml:space="preserve">
|
||
<value>OK</value>
|
||
</data>
|
||
<data name="Button_Cancel" xml:space="preserve">
|
||
<value>Cancel</value>
|
||
</data>
|
||
<data name="Language_ZhCN" xml:space="preserve">
|
||
<value>Simplified Chinese</value>
|
||
</data>
|
||
<data name="Language_ZhTW" xml:space="preserve">
|
||
<value>Traditional Chinese</value>
|
||
</data>
|
||
<data name="Language_EnUS" xml:space="preserve">
|
||
<value>English</value>
|
||
</data>
|
||
<data name="Settings_Language" xml:space="preserve">
|
||
<value>Language Settings</value>
|
||
</data>
|
||
<data name="Settings_Language_Description" xml:space="preserve">
|
||
<value>Select your preferred display language</value>
|
||
</data>
|
||
<data name="Settings_Language_RestartNotice" xml:space="preserve">
|
||
<value>Language changes will take effect on the next application startup.</value>
|
||
</data>
|
||
<data name="Button_Apply" xml:space="preserve">
|
||
<value>Apply</value>
|
||
</data>
|
||
<data name="Button_Close" xml:space="preserve">
|
||
<value>Close</value>
|
||
</data>
|
||
<data name="Button_Save" xml:space="preserve">
|
||
<value>Save</value>
|
||
</data>
|
||
<data name="Button_Delete" xml:space="preserve">
|
||
<value>Delete</value>
|
||
</data>
|
||
<data name="Button_Edit" xml:space="preserve">
|
||
<value>Edit</value>
|
||
</data>
|
||
<data name="Button_Add" xml:space="preserve">
|
||
<value>Add</value>
|
||
</data>
|
||
<data name="Button_Refresh" xml:space="preserve">
|
||
<value>Refresh</value>
|
||
</data>
|
||
<data name="Button_Search" xml:space="preserve">
|
||
<value>Search</value>
|
||
</data>
|
||
<data name="Button_Reset" xml:space="preserve">
|
||
<value>Reset</value>
|
||
</data>
|
||
<data name="Status_Ready" xml:space="preserve">
|
||
<value>Ready</value>
|
||
</data>
|
||
<data name="Status_Loading" xml:space="preserve">
|
||
<value>Loading...</value>
|
||
</data>
|
||
<data name="Status_Saving" xml:space="preserve">
|
||
<value>Saving...</value>
|
||
</data>
|
||
<data name="Status_Processing" xml:space="preserve">
|
||
<value>Processing...</value>
|
||
</data>
|
||
<data name="Status_Success" xml:space="preserve">
|
||
<value>Success</value>
|
||
</data>
|
||
<data name="Status_Failed" xml:space="preserve">
|
||
<value>Failed</value>
|
||
</data>
|
||
<data name="Status_Error" xml:space="preserve">
|
||
<value>Error</value>
|
||
</data>
|
||
<data name="Status_Warning" xml:space="preserve">
|
||
<value>Warning</value>
|
||
</data>
|
||
<data name="Status_Connected" xml:space="preserve">
|
||
<value>Connected</value>
|
||
</data>
|
||
<data name="Status_Disconnected" xml:space="preserve">
|
||
<value>Disconnected</value>
|
||
</data>
|
||
<data name="Welcome_Message" xml:space="preserve">
|
||
<value>Welcome to XplorePlane X-Ray Inspection System</value>
|
||
</data>
|
||
<data name="Message_OperationSuccess" xml:space="preserve">
|
||
<value>Operation completed successfully</value>
|
||
</data>
|
||
<data name="Message_OperationFailed" xml:space="preserve">
|
||
<value>Operation failed</value>
|
||
</data>
|
||
<data name="Message_ConfirmDelete" xml:space="preserve">
|
||
<value>Are you sure you want to delete?</value>
|
||
</data>
|
||
<data name="Message_UnsavedChanges" xml:space="preserve">
|
||
<value>There are unsaved changes. Do you want to save?</value>
|
||
</data>
|
||
<data name="Message_InvalidInput" xml:space="preserve">
|
||
<value>Invalid input. Please check and try again</value>
|
||
</data>
|
||
<data name="Message_ConnectionLost" xml:space="preserve">
|
||
<value>Connection lost</value>
|
||
</data>
|
||
<data name="Message_RestartRequired" xml:space="preserve">
|
||
<value>Language setting saved. Please restart the application to apply the new language.</value>
|
||
</data>
|
||
<data name="Menu_View" xml:space="preserve">
|
||
<value>View</value>
|
||
</data>
|
||
<data name="Menu_Tools" xml:space="preserve">
|
||
<value>Tools</value>
|
||
</data>
|
||
<data name="Menu_Help" xml:space="preserve">
|
||
<value>Help</value>
|
||
</data>
|
||
<data name="Menu_Exit" xml:space="preserve">
|
||
<value>Exit</value>
|
||
</data>
|
||
<data name="Menu_About" xml:space="preserve">
|
||
<value>About</value>
|
||
</data>
|
||
<data name="Dialog_Confirmation" xml:space="preserve">
|
||
<value>Confirmation</value>
|
||
</data>
|
||
<data name="Dialog_Information" xml:space="preserve">
|
||
<value>Information</value>
|
||
</data>
|
||
<data name="Dialog_Warning" xml:space="preserve">
|
||
<value>Warning</value>
|
||
</data>
|
||
<data name="Dialog_Error" xml:space="preserve">
|
||
<value>Error</value>
|
||
</data>
|
||
<data name="Dialog_Notice" xml:space="preserve">
|
||
<value>Notice</value>
|
||
</data>
|
||
<data name="Settings_Language_SavedRestartRequired" xml:space="preserve">
|
||
<value>Language setting saved. Please restart the application to apply the new language.</value>
|
||
</data>
|
||
<data name="Settings_Language_SwitchFailed" xml:space="preserve">
|
||
<value>Failed to switch language: {0}</value>
|
||
</data>
|
||
<data name="Scan_Text_ScanMode" xml:space="preserve">
|
||
<value>Scan Mode:</value>
|
||
<comment>Scan - Scan mode label</comment>
|
||
</data>
|
||
<data name="Scan_Text_FrameMerge" xml:space="preserve">
|
||
<value>Frame Merge:</value>
|
||
<comment>Scan - Frame merge label</comment>
|
||
</data>
|
||
<data name="Scan_Text_Nums" xml:space="preserve">
|
||
<value>Acquisition Count:</value>
|
||
<comment>Scan - Acquisition count label</comment>
|
||
</data>
|
||
<data name="Scan_Text_Angles" xml:space="preserve">
|
||
<value>Rotation Angle:</value>
|
||
<comment>Scan - Rotation angle label</comment>
|
||
</data>
|
||
<data name="Scan_Text_Progress" xml:space="preserve">
|
||
<value>Progress:</value>
|
||
<comment>Scan - Acquisition progress label</comment>
|
||
</data>
|
||
<data name="Scan_Button_Start" xml:space="preserve">
|
||
<value>Start</value>
|
||
<comment>Scan - Start acquisition button</comment>
|
||
</data>
|
||
<data name="Scan_Button_Stop" xml:space="preserve">
|
||
<value>Stop</value>
|
||
<comment>Scan - Stop acquisition button</comment>
|
||
</data>
|
||
<data name="LogViewer_StatusTotal" xml:space="preserve">
|
||
<value>Total {0} logs</value>
|
||
<comment>LogViewer - Status bar total count</comment>
|
||
</data>
|
||
<data name="LogViewer_StatusFiltered" xml:space="preserve">
|
||
<value>Total {0} logs, {1} after filtering</value>
|
||
<comment>LogViewer - Status bar filtered count</comment>
|
||
</data>
|
||
<data name="LogViewer_Title" xml:space="preserve">
|
||
<value>Real-Time Log Viewer</value>
|
||
<comment>LogViewer - Window title</comment>
|
||
</data>
|
||
<data name="LogViewer_AutoScroll" xml:space="preserve">
|
||
<value>Auto Scroll</value>
|
||
<comment>LogViewer - Auto-scroll button</comment>
|
||
</data>
|
||
<data name="LogViewer_ClearLog" xml:space="preserve">
|
||
<value>Clear Log</value>
|
||
<comment>LogViewer - Clear log button</comment>
|
||
</data>
|
||
<data name="LogViewer_Filter" xml:space="preserve">
|
||
<value>Filter:</value>
|
||
<comment>LogViewer - Filter label</comment>
|
||
</data>
|
||
<data name="LogViewer_FilterWatermark" xml:space="preserve">
|
||
<value>Enter keyword to filter logs...</value>
|
||
<comment>LogViewer - Filter watermark</comment>
|
||
</data>
|
||
<data name="LogViewer_LevelFilter" xml:space="preserve">
|
||
<value>Level Filter:</value>
|
||
<comment>LogViewer - Level filter label</comment>
|
||
</data>
|
||
<data name="LogViewer_ColTime" xml:space="preserve">
|
||
<value>Time</value>
|
||
<comment>LogViewer - Time column header</comment>
|
||
</data>
|
||
<data name="LogViewer_ColLevel" xml:space="preserve">
|
||
<value>Level</value>
|
||
<comment>LogViewer - Level column header</comment>
|
||
</data>
|
||
<data name="LogViewer_ColSource" xml:space="preserve">
|
||
<value>Source</value>
|
||
<comment>LogViewer - Source column header</comment>
|
||
</data>
|
||
<data name="LogViewer_ColMessage" xml:space="preserve">
|
||
<value>Message</value>
|
||
<comment>LogViewer - Message column header</comment>
|
||
</data>
|
||
<data name="LogViewer_MaxLines" xml:space="preserve">
|
||
<value>Max Lines:</value>
|
||
<comment>LogViewer - Max lines label</comment>
|
||
</data>
|
||
<data name="PdfViewer_Title" xml:space="preserve">
|
||
<value>PDF Viewer</value>
|
||
<comment>PdfViewer - Window title</comment>
|
||
</data>
|
||
<data name="PdfViewer_TitleWithFile" xml:space="preserve">
|
||
<value>PDF Viewer - {0}</value>
|
||
<comment>PdfViewer - Window title with file name</comment>
|
||
</data>
|
||
<data name="PdfViewer_LoadSuccess" xml:space="preserve">
|
||
<value>PDF loaded: {0} ({1} pages)</value>
|
||
<comment>PdfViewer - Load success log</comment>
|
||
</data>
|
||
<data name="PdfViewer_LoadFailed" xml:space="preserve">
|
||
<value>PDF file load failed</value>
|
||
<comment>PdfViewer - Load failed log</comment>
|
||
</data>
|
||
<data name="PdfViewer_PrintSuccess" xml:space="preserve">
|
||
<value>Print job submitted: {0} → {1}</value>
|
||
<comment>PdfViewer - Print success log</comment>
|
||
</data>
|
||
<data name="PdfViewer_PrintFailed" xml:space="preserve">
|
||
<value>Print failed</value>
|
||
<comment>PdfViewer - Print failed log</comment>
|
||
</data>
|
||
<data name="PdfViewer_PrinterNotFound" xml:space="preserve">
|
||
<value>Printer not found: {0}</value>
|
||
<comment>PdfViewer - Printer not found</comment>
|
||
</data>
|
||
<data name="ContrastProcessor_Name" xml:space="preserve">
|
||
<value>Contrast Adjustment</value>
|
||
</data>
|
||
<data name="ContrastProcessor_Description" xml:space="preserve">
|
||
<value>Adjust image contrast and brightness</value>
|
||
</data>
|
||
<data name="ContrastProcessor_Contrast" xml:space="preserve">
|
||
<value>Contrast</value>
|
||
</data>
|
||
<data name="ContrastProcessor_Contrast_Desc" xml:space="preserve">
|
||
<value>Contrast gain, 1.0 for original contrast</value>
|
||
</data>
|
||
<data name="ContrastProcessor_Brightness" xml:space="preserve">
|
||
<value>Brightness</value>
|
||
</data>
|
||
<data name="ContrastProcessor_Brightness_Desc" xml:space="preserve">
|
||
<value>Brightness offset</value>
|
||
</data>
|
||
<data name="ContrastProcessor_AutoContrast" xml:space="preserve">
|
||
<value>Auto Contrast</value>
|
||
</data>
|
||
<data name="ContrastProcessor_AutoContrast_Desc" xml:space="preserve">
|
||
<value>Automatically stretch contrast to full range</value>
|
||
</data>
|
||
<data name="ContrastProcessor_UseCLAHE" xml:space="preserve">
|
||
<value>Use CLAHE</value>
|
||
</data>
|
||
<data name="ContrastProcessor_UseCLAHE_Desc" xml:space="preserve">
|
||
<value>Use Contrast Limited Adaptive Histogram Equalization</value>
|
||
</data>
|
||
<data name="ContrastProcessor_ClipLimit" xml:space="preserve">
|
||
<value>CLAHE Clip Limit</value>
|
||
</data>
|
||
<data name="ContrastProcessor_ClipLimit_Desc" xml:space="preserve">
|
||
<value>CLAHE contrast limit threshold</value>
|
||
</data>
|
||
<data name="BandPassFilterProcessor_Name" xml:space="preserve">
|
||
<value>Band Pass Filter</value>
|
||
</data>
|
||
<data name="BandPassFilterProcessor_Description" xml:space="preserve">
|
||
<value>Preserve image information within specified frequency range</value>
|
||
</data>
|
||
<data name="BandPassFilterProcessor_LowCutoff" xml:space="preserve">
|
||
<value>Low Cutoff Radius</value>
|
||
</data>
|
||
<data name="BandPassFilterProcessor_LowCutoff_Desc" xml:space="preserve">
|
||
<value>Components below this frequency will be removed</value>
|
||
</data>
|
||
<data name="BandPassFilterProcessor_HighCutoff" xml:space="preserve">
|
||
<value>High Cutoff Radius</value>
|
||
</data>
|
||
<data name="BandPassFilterProcessor_HighCutoff_Desc" xml:space="preserve">
|
||
<value>Components above this frequency will be removed</value>
|
||
</data>
|
||
<data name="BandPassFilterProcessor_FilterType" xml:space="preserve">
|
||
<value>Filter Type</value>
|
||
</data>
|
||
<data name="BandPassFilterProcessor_FilterType_Desc" xml:space="preserve">
|
||
<value>Transition characteristics of the filter</value>
|
||
</data>
|
||
<data name="BandPassFilterProcessor_Order" xml:space="preserve">
|
||
<value>Butterworth Order</value>
|
||
</data>
|
||
<data name="BandPassFilterProcessor_Order_Desc" xml:space="preserve">
|
||
<value>Order of Butterworth filter</value>
|
||
</data>
|
||
<data name="ContourProcessor_Name" xml:space="preserve">
|
||
<value>Contour Detection</value>
|
||
</data>
|
||
<data name="ContourProcessor_Description" xml:space="preserve">
|
||
<value>Detect contours in image and output contour information</value>
|
||
</data>
|
||
<data name="ContourProcessor_TargetColor" xml:space="preserve">
|
||
<value>Target Color</value>
|
||
</data>
|
||
<data name="ContourProcessor_TargetColor_Desc" xml:space="preserve">
|
||
<value>Select the color of regions to find (white or black)</value>
|
||
</data>
|
||
<data name="ContourProcessor_UseThreshold" xml:space="preserve">
|
||
<value>Enable Threshold</value>
|
||
</data>
|
||
<data name="ContourProcessor_UseThreshold_Desc" xml:space="preserve">
|
||
<value>Apply binary threshold before contour detection</value>
|
||
</data>
|
||
<data name="ContourProcessor_ThresholdValue" xml:space="preserve">
|
||
<value>Threshold Value</value>
|
||
</data>
|
||
<data name="ContourProcessor_ThresholdValue_Desc" xml:space="preserve">
|
||
<value>Threshold value for binarization (0-255)</value>
|
||
</data>
|
||
<data name="ContourProcessor_UseOtsu" xml:space="preserve">
|
||
<value>Use Otsu Auto Threshold</value>
|
||
</data>
|
||
<data name="ContourProcessor_UseOtsu_Desc" xml:space="preserve">
|
||
<value>Automatically calculate optimal threshold</value>
|
||
</data>
|
||
<data name="ContourProcessor_MinArea" xml:space="preserve">
|
||
<value>Min Area</value>
|
||
</data>
|
||
<data name="ContourProcessor_MinArea_Desc" xml:space="preserve">
|
||
<value>Filter contours smaller than this area</value>
|
||
</data>
|
||
<data name="ContourProcessor_MaxArea" xml:space="preserve">
|
||
<value>Max Area</value>
|
||
</data>
|
||
<data name="ContourProcessor_MaxArea_Desc" xml:space="preserve">
|
||
<value>Filter contours larger than this area</value>
|
||
</data>
|
||
<data name="ContourProcessor_Thickness" xml:space="preserve">
|
||
<value>Line Thickness</value>
|
||
</data>
|
||
<data name="ContourProcessor_Thickness_Desc" xml:space="preserve">
|
||
<value>Thickness of contour lines</value>
|
||
</data>
|
||
<data name="DivisionProcessor_Name" xml:space="preserve">
|
||
<value>Division Operation</value>
|
||
</data>
|
||
<data name="DivisionProcessor_Description" xml:space="preserve">
|
||
<value>Perform division operation on image for background correction and normalization</value>
|
||
</data>
|
||
<data name="DivisionProcessor_Divisor" xml:space="preserve">
|
||
<value>Divisor</value>
|
||
</data>
|
||
<data name="DivisionProcessor_Divisor_Desc" xml:space="preserve">
|
||
<value>Each pixel value will be divided by this number</value>
|
||
</data>
|
||
<data name="DivisionProcessor_Scale" xml:space="preserve">
|
||
<value>Scale Factor</value>
|
||
</data>
|
||
<data name="DivisionProcessor_Scale_Desc" xml:space="preserve">
|
||
<value>Division result multiplied by this scale factor</value>
|
||
</data>
|
||
<data name="DivisionProcessor_Normalize" xml:space="preserve">
|
||
<value>Normalize Output</value>
|
||
</data>
|
||
<data name="DivisionProcessor_Normalize_Desc" xml:space="preserve">
|
||
<value>Normalize result to 0-255 range</value>
|
||
</data>
|
||
<data name="GammaProcessor_Name" xml:space="preserve">
|
||
<value>Gamma Correction</value>
|
||
</data>
|
||
<data name="GammaProcessor_Description" xml:space="preserve">
|
||
<value>Adjust image brightness through Gamma value</value>
|
||
</data>
|
||
<data name="GammaProcessor_Gamma" xml:space="preserve">
|
||
<value>Gamma Value</value>
|
||
</data>
|
||
<data name="GammaProcessor_Gamma_Desc" xml:space="preserve">
|
||
<value>Gamma value, less than 1 darkens image, greater than 1 brightens image</value>
|
||
</data>
|
||
<data name="GammaProcessor_Gain" xml:space="preserve">
|
||
<value>Gain</value>
|
||
</data>
|
||
<data name="GammaProcessor_Gain_Desc" xml:space="preserve">
|
||
<value>Output gain coefficient</value>
|
||
</data>
|
||
<data name="GaussianBlurProcessor_Name" xml:space="preserve">
|
||
<value>Gaussian Blur</value>
|
||
</data>
|
||
<data name="GaussianBlurProcessor_Description" xml:space="preserve">
|
||
<value>Smooth image using Gaussian kernel</value>
|
||
</data>
|
||
<data name="GaussianBlurProcessor_KernelSize" xml:space="preserve">
|
||
<value>Kernel Size</value>
|
||
</data>
|
||
<data name="GaussianBlurProcessor_KernelSize_Desc" xml:space="preserve">
|
||
<value>Size of Gaussian kernel, must be odd</value>
|
||
</data>
|
||
<data name="GaussianBlurProcessor_Sigma" xml:space="preserve">
|
||
<value>Standard Deviation</value>
|
||
</data>
|
||
<data name="GaussianBlurProcessor_Sigma_Desc" xml:space="preserve">
|
||
<value>Standard deviation of Gaussian kernel, controls blur amount</value>
|
||
</data>
|
||
<data name="MorphologyProcessor_Name" xml:space="preserve">
|
||
<value>Morphology Processing</value>
|
||
</data>
|
||
<data name="MorphologyProcessor_Description" xml:space="preserve">
|
||
<value>Perform morphological operations (erosion, dilation, opening, closing)</value>
|
||
</data>
|
||
<data name="MorphologyProcessor_Operation" xml:space="preserve">
|
||
<value>Operation Type</value>
|
||
</data>
|
||
<data name="MorphologyProcessor_Operation_Desc" xml:space="preserve">
|
||
<value>Select morphological operation type</value>
|
||
</data>
|
||
<data name="MorphologyProcessor_KernelSize" xml:space="preserve">
|
||
<value>Kernel Size</value>
|
||
</data>
|
||
<data name="MorphologyProcessor_KernelSize_Desc" xml:space="preserve">
|
||
<value>Size of structuring element</value>
|
||
</data>
|
||
<data name="MorphologyProcessor_Iterations" xml:space="preserve">
|
||
<value>Iterations</value>
|
||
</data>
|
||
<data name="MorphologyProcessor_Iterations_Desc" xml:space="preserve">
|
||
<value>Number of times to repeat morphological operation</value>
|
||
</data>
|
||
<data name="ShockFilterProcessor_Name" xml:space="preserve">
|
||
<value>Shock Filter</value>
|
||
</data>
|
||
<data name="ShockFilterProcessor_Description" xml:space="preserve">
|
||
<value>Edge enhancement and denoising</value>
|
||
</data>
|
||
<data name="ShockFilterProcessor_Iterations" xml:space="preserve">
|
||
<value>Iterations</value>
|
||
</data>
|
||
<data name="ShockFilterProcessor_Iterations_Desc" xml:space="preserve">
|
||
<value>Number of filter iterations</value>
|
||
</data>
|
||
<data name="ShockFilterProcessor_Theta" xml:space="preserve">
|
||
<value>Threshold</value>
|
||
</data>
|
||
<data name="ShockFilterProcessor_Theta_Desc" xml:space="preserve">
|
||
<value>Edge detection threshold</value>
|
||
</data>
|
||
<data name="ShockFilterProcessor_Dt" xml:space="preserve">
|
||
<value>Time Step</value>
|
||
</data>
|
||
<data name="ShockFilterProcessor_Dt_Desc" xml:space="preserve">
|
||
<value>Evolution time step</value>
|
||
</data>
|
||
<data name="ThresholdProcessor_Name" xml:space="preserve">
|
||
<value>Threshold Segmentation</value>
|
||
</data>
|
||
<data name="ThresholdProcessor_Description" xml:space="preserve">
|
||
<value>Binarize image</value>
|
||
</data>
|
||
<data name="ThresholdProcessor_Threshold" xml:space="preserve">
|
||
<value>Threshold</value>
|
||
</data>
|
||
<data name="ThresholdProcessor_Threshold_Desc" xml:space="preserve">
|
||
<value>Binarization threshold, pixels above this value will be set to max value</value>
|
||
</data>
|
||
<data name="ThresholdProcessor_MaxValue" xml:space="preserve">
|
||
<value>Max Value</value>
|
||
</data>
|
||
<data name="ThresholdProcessor_MaxValue_Desc" xml:space="preserve">
|
||
<value>Pixels above threshold will be set to this value</value>
|
||
</data>
|
||
<data name="ThresholdProcessor_UseOtsu" xml:space="preserve">
|
||
<value>Use Otsu Auto Threshold</value>
|
||
</data>
|
||
<data name="ThresholdProcessor_UseOtsu_Desc" xml:space="preserve">
|
||
<value>When enabled, optimal threshold will be calculated automatically</value>
|
||
</data>
|
||
<data name="FilterProcessor_Name" xml:space="preserve">
|
||
<value>Comprehensive Filter</value>
|
||
</data>
|
||
<data name="FilterProcessor_Description" xml:space="preserve">
|
||
<value>Integrated multiple filtering methods</value>
|
||
</data>
|
||
<data name="FilterProcessor_FilterType" xml:space="preserve">
|
||
<value>Filter Type</value>
|
||
</data>
|
||
<data name="FilterProcessor_FilterType_Desc" xml:space="preserve">
|
||
<value>Select filtering method</value>
|
||
</data>
|
||
<data name="FilterProcessor_KernelSize" xml:space="preserve">
|
||
<value>Kernel Size</value>
|
||
</data>
|
||
<data name="FilterProcessor_KernelSize_Desc" xml:space="preserve">
|
||
<value>Size of the filter kernel (must be odd)</value>
|
||
</data>
|
||
<data name="FilterProcessor_Sigma" xml:space="preserve">
|
||
<value>Sigma</value>
|
||
</data>
|
||
<data name="FilterProcessor_Sigma_Desc" xml:space="preserve">
|
||
<value>Standard deviation for Gaussian/Bilateral filter</value>
|
||
</data>
|
||
<data name="FilterProcessor_D0" xml:space="preserve">
|
||
<value>Cutoff Frequency</value>
|
||
</data>
|
||
<data name="FilterProcessor_D0_Desc" xml:space="preserve">
|
||
<value>Cutoff frequency for frequency domain filtering</value>
|
||
</data>
|
||
<data name="FilterProcessor_LowCutoff" xml:space="preserve">
|
||
<value>Low Cutoff Radius</value>
|
||
</data>
|
||
<data name="FilterProcessor_LowCutoff_Desc" xml:space="preserve">
|
||
<value>Components below this frequency will be removed</value>
|
||
</data>
|
||
<data name="FilterProcessor_HighCutoff" xml:space="preserve">
|
||
<value>High Cutoff Radius</value>
|
||
</data>
|
||
<data name="FilterProcessor_HighCutoff_Desc" xml:space="preserve">
|
||
<value>Components above this frequency will be removed</value>
|
||
</data>
|
||
<data name="FilterProcessor_BandPassFilterType" xml:space="preserve">
|
||
<value>Band Pass Filter Type</value>
|
||
</data>
|
||
<data name="FilterProcessor_BandPassFilterType_Desc" xml:space="preserve">
|
||
<value>Transition characteristics of the band pass filter</value>
|
||
</data>
|
||
<data name="FilterProcessor_Order" xml:space="preserve">
|
||
<value>Butterworth Order</value>
|
||
</data>
|
||
<data name="FilterProcessor_Order_Desc" xml:space="preserve">
|
||
<value>Order of Butterworth filter</value>
|
||
</data>
|
||
<data name="FilterProcessor_Gaussian_Name" xml:space="preserve">
|
||
<value>Gaussian Filter</value>
|
||
</data>
|
||
<data name="FilterProcessor_Gaussian_Desc" xml:space="preserve">
|
||
<value>Smooth image and reduce Gaussian noise while preserving edges</value>
|
||
</data>
|
||
<data name="FilterProcessor_Median_Name" xml:space="preserve">
|
||
<value>Median Filter</value>
|
||
</data>
|
||
<data name="FilterProcessor_Median_Desc" xml:space="preserve">
|
||
<value>Remove salt-and-pepper noise effectively</value>
|
||
</data>
|
||
<data name="FilterProcessor_Mean_Name" xml:space="preserve">
|
||
<value>Mean Filter</value>
|
||
</data>
|
||
<data name="FilterProcessor_Mean_Desc" xml:space="preserve">
|
||
<value>Simple averaging smoothing filter</value>
|
||
</data>
|
||
<data name="FilterProcessor_Bilateral_Name" xml:space="preserve">
|
||
<value>Bilateral Filter</value>
|
||
</data>
|
||
<data name="FilterProcessor_Bilateral_Desc" xml:space="preserve">
|
||
<value>Edge-preserving smoothing filter</value>
|
||
</data>
|
||
<data name="FilterProcessor_LowPass_Name" xml:space="preserve">
|
||
<value>Low Pass Filter</value>
|
||
</data>
|
||
<data name="FilterProcessor_LowPass_Desc" xml:space="preserve">
|
||
<value>Remove high frequency noise in frequency domain</value>
|
||
</data>
|
||
<data name="FilterProcessor_HighPass_Name" xml:space="preserve">
|
||
<value>High Pass Filter</value>
|
||
</data>
|
||
<data name="FilterProcessor_HighPass_Desc" xml:space="preserve">
|
||
<value>Edge enhancement in frequency domain</value>
|
||
</data>
|
||
<data name="FilterProcessor_BandPass_Name" xml:space="preserve">
|
||
<value>Band Pass Filter</value>
|
||
</data>
|
||
<data name="FilterProcessor_BandPass_Desc" xml:space="preserve">
|
||
<value>Preserve image information within specified frequency range</value>
|
||
</data>
|
||
<data name="MedianFilterProcessor_Name" xml:space="preserve">
|
||
<value>Median Filter</value>
|
||
</data>
|
||
<data name="MedianFilterProcessor_Description" xml:space="preserve">
|
||
<value>Remove salt-and-pepper noise effectively</value>
|
||
</data>
|
||
<data name="MedianFilterProcessor_KernelSize" xml:space="preserve">
|
||
<value>Kernel Size</value>
|
||
</data>
|
||
<data name="MedianFilterProcessor_KernelSize_Desc" xml:space="preserve">
|
||
<value>Size of the filter kernel (must be odd)</value>
|
||
</data>
|
||
<data name="MeanFilterProcessor_Name" xml:space="preserve">
|
||
<value>Mean Filter</value>
|
||
</data>
|
||
<data name="MeanFilterProcessor_Description" xml:space="preserve">
|
||
<value>Simple averaging smoothing filter</value>
|
||
</data>
|
||
<data name="MeanFilterProcessor_KernelSize" xml:space="preserve">
|
||
<value>Kernel Size</value>
|
||
</data>
|
||
<data name="MeanFilterProcessor_KernelSize_Desc" xml:space="preserve">
|
||
<value>Size of the filter kernel (must be odd)</value>
|
||
</data>
|
||
<data name="BilateralFilterProcessor_Name" xml:space="preserve">
|
||
<value>Bilateral Filter</value>
|
||
</data>
|
||
<data name="BilateralFilterProcessor_Description" xml:space="preserve">
|
||
<value>Edge-preserving smoothing filter</value>
|
||
</data>
|
||
<data name="BilateralFilterProcessor_Diameter" xml:space="preserve">
|
||
<value>Diameter</value>
|
||
</data>
|
||
<data name="BilateralFilterProcessor_Diameter_Desc" xml:space="preserve">
|
||
<value>Diameter of each pixel neighborhood</value>
|
||
</data>
|
||
<data name="BilateralFilterProcessor_SigmaColor" xml:space="preserve">
|
||
<value>Sigma Color</value>
|
||
</data>
|
||
<data name="BilateralFilterProcessor_SigmaColor_Desc" xml:space="preserve">
|
||
<value>Filter sigma in the color space</value>
|
||
</data>
|
||
<data name="BilateralFilterProcessor_SigmaSpace" xml:space="preserve">
|
||
<value>Sigma Space</value>
|
||
</data>
|
||
<data name="BilateralFilterProcessor_SigmaSpace_Desc" xml:space="preserve">
|
||
<value>Filter sigma in the coordinate space</value>
|
||
</data>
|
||
<data name="LowPassFilterProcessor_Name" xml:space="preserve">
|
||
<value>Low Pass Filter</value>
|
||
</data>
|
||
<data name="LowPassFilterProcessor_Description" xml:space="preserve">
|
||
<value>Remove high frequency noise in frequency domain</value>
|
||
</data>
|
||
<data name="LowPassFilterProcessor_CutoffFrequency" xml:space="preserve">
|
||
<value>Cutoff Frequency</value>
|
||
</data>
|
||
<data name="LowPassFilterProcessor_CutoffFrequency_Desc" xml:space="preserve">
|
||
<value>Cutoff frequency for low pass filter</value>
|
||
</data>
|
||
<data name="HighPassFilterProcessor_Name" xml:space="preserve">
|
||
<value>High Pass Filter</value>
|
||
</data>
|
||
<data name="HighPassFilterProcessor_Description" xml:space="preserve">
|
||
<value>Edge enhancement in frequency domain</value>
|
||
</data>
|
||
<data name="HighPassFilterProcessor_CutoffFrequency" xml:space="preserve">
|
||
<value>Cutoff Frequency</value>
|
||
</data>
|
||
<data name="HighPassFilterProcessor_CutoffFrequency_Desc" xml:space="preserve">
|
||
<value>Cutoff frequency for high pass filter</value>
|
||
</data>
|
||
<data name="GrayscaleProcessor_Name" xml:space="preserve">
|
||
<value>Grayscale Conversion</value>
|
||
</data>
|
||
<data name="GrayscaleProcessor_Description" xml:space="preserve">
|
||
<value>Convert image to grayscale</value>
|
||
</data>
|
||
<data name="GrayscaleProcessor_Method" xml:space="preserve">
|
||
<value>Conversion Method</value>
|
||
</data>
|
||
<data name="GrayscaleProcessor_Method_Desc" xml:space="preserve">
|
||
<value>Method for grayscale conversion</value>
|
||
</data>
|
||
<data name="SharpenProcessor_Name" xml:space="preserve">
|
||
<value>Sharpen</value>
|
||
</data>
|
||
<data name="SharpenProcessor_Description" xml:space="preserve">
|
||
<value>Enhance image edges and details</value>
|
||
</data>
|
||
<data name="SharpenProcessor_Method" xml:space="preserve">
|
||
<value>Sharpen Method</value>
|
||
</data>
|
||
<data name="SharpenProcessor_Method_Desc" xml:space="preserve">
|
||
<value>Select sharpening algorithm</value>
|
||
</data>
|
||
<data name="SharpenProcessor_Strength" xml:space="preserve">
|
||
<value>Strength</value>
|
||
</data>
|
||
<data name="SharpenProcessor_Strength_Desc" xml:space="preserve">
|
||
<value>Strength of sharpening effect</value>
|
||
</data>
|
||
<data name="SharpenProcessor_KernelSize" xml:space="preserve">
|
||
<value>Kernel Size</value>
|
||
</data>
|
||
<data name="SharpenProcessor_KernelSize_Desc" xml:space="preserve">
|
||
<value>Size of sharpening kernel (must be odd)</value>
|
||
</data>
|
||
<data name="HistogramEqualizationProcessor_Name" xml:space="preserve">
|
||
<value>Histogram Equalization</value>
|
||
</data>
|
||
<data name="HistogramEqualizationProcessor_Description" xml:space="preserve">
|
||
<value>Enhance image contrast</value>
|
||
</data>
|
||
<data name="HistogramEqualizationProcessor_Method" xml:space="preserve">
|
||
<value>Equalization Method</value>
|
||
</data>
|
||
<data name="HistogramEqualizationProcessor_Method_Desc" xml:space="preserve">
|
||
<value>Select histogram equalization algorithm</value>
|
||
</data>
|
||
<data name="HistogramEqualizationProcessor_ClipLimit" xml:space="preserve">
|
||
<value>Clip Limit</value>
|
||
</data>
|
||
<data name="HistogramEqualizationProcessor_ClipLimit_Desc" xml:space="preserve">
|
||
<value>Contrast limiting threshold for CLAHE</value>
|
||
</data>
|
||
<data name="HistogramEqualizationProcessor_TileSize" xml:space="preserve">
|
||
<value>Tile Size</value>
|
||
</data>
|
||
<data name="HistogramEqualizationProcessor_TileSize_Desc" xml:space="preserve">
|
||
<value>Tile size for CLAHE</value>
|
||
</data>
|
||
<data name="SobelEdgeProcessor_Name" xml:space="preserve">
|
||
<value>Sobel Edge Detection</value>
|
||
</data>
|
||
<data name="SobelEdgeProcessor_Description" xml:space="preserve">
|
||
<value>Detect image edges using Sobel operator</value>
|
||
</data>
|
||
<data name="SobelEdgeProcessor_Direction" xml:space="preserve">
|
||
<value>Detection Direction</value>
|
||
</data>
|
||
<data name="SobelEdgeProcessor_Direction_Desc" xml:space="preserve">
|
||
<value>Select edge detection direction</value>
|
||
</data>
|
||
<data name="SobelEdgeProcessor_KernelSize" xml:space="preserve">
|
||
<value>Kernel Size</value>
|
||
</data>
|
||
<data name="SobelEdgeProcessor_KernelSize_Desc" xml:space="preserve">
|
||
<value>Sobel operator kernel size (odd number)</value>
|
||
</data>
|
||
<data name="SobelEdgeProcessor_Scale" xml:space="preserve">
|
||
<value>Scale Factor</value>
|
||
</data>
|
||
<data name="SobelEdgeProcessor_Scale_Desc" xml:space="preserve">
|
||
<value>Scale factor for edge intensity</value>
|
||
</data>
|
||
<data name="KirschEdgeProcessor_Name" xml:space="preserve">
|
||
<value>Kirsch Edge Detection</value>
|
||
</data>
|
||
<data name="KirschEdgeProcessor_Description" xml:space="preserve">
|
||
<value>Detect image edges using Kirsch operator</value>
|
||
</data>
|
||
<data name="KirschEdgeProcessor_Threshold" xml:space="preserve">
|
||
<value>Threshold</value>
|
||
</data>
|
||
<data name="KirschEdgeProcessor_Threshold_Desc" xml:space="preserve">
|
||
<value>Edge detection threshold</value>
|
||
</data>
|
||
<data name="KirschEdgeProcessor_Scale" xml:space="preserve">
|
||
<value>Scale Factor</value>
|
||
</data>
|
||
<data name="KirschEdgeProcessor_Scale_Desc" xml:space="preserve">
|
||
<value>Scale factor for edge intensity</value>
|
||
</data>
|
||
<data name="HorizontalEdgeProcessor_Name" xml:space="preserve">
|
||
<value>Horizontal Edge Detection</value>
|
||
</data>
|
||
<data name="HorizontalEdgeProcessor_Description" xml:space="preserve">
|
||
<value>Detect horizontal edges specifically</value>
|
||
</data>
|
||
<data name="HorizontalEdgeProcessor_Method" xml:space="preserve">
|
||
<value>Detection Method</value>
|
||
</data>
|
||
<data name="HorizontalEdgeProcessor_Method_Desc" xml:space="preserve">
|
||
<value>Select horizontal edge detection algorithm</value>
|
||
</data>
|
||
<data name="HorizontalEdgeProcessor_Sensitivity" xml:space="preserve">
|
||
<value>Sensitivity</value>
|
||
</data>
|
||
<data name="HorizontalEdgeProcessor_Sensitivity_Desc" xml:space="preserve">
|
||
<value>Edge detection sensitivity</value>
|
||
</data>
|
||
<data name="HorizontalEdgeProcessor_Threshold" xml:space="preserve">
|
||
<value>Threshold</value>
|
||
</data>
|
||
<data name="HorizontalEdgeProcessor_Threshold_Desc" xml:space="preserve">
|
||
<value>Edge detection threshold</value>
|
||
</data>
|
||
<data name="RetinexProcessor_Name" xml:space="preserve">
|
||
<value>Retinex Shadow Correction</value>
|
||
</data>
|
||
<data name="RetinexProcessor_Description" xml:space="preserve">
|
||
<value>Multi-scale shadow correction and illumination equalization based on Retinex</value>
|
||
</data>
|
||
<data name="RetinexProcessor_Method" xml:space="preserve">
|
||
<value>Processing Method</value>
|
||
</data>
|
||
<data name="RetinexProcessor_Method_Desc" xml:space="preserve">
|
||
<value>Select Retinex algorithm type</value>
|
||
</data>
|
||
<data name="RetinexProcessor_Sigma1" xml:space="preserve">
|
||
<value>Scale 1 (Small)</value>
|
||
</data>
|
||
<data name="RetinexProcessor_Sigma1_Desc" xml:space="preserve">
|
||
<value>Small scale Gaussian kernel sigma for detail enhancement</value>
|
||
</data>
|
||
<data name="RetinexProcessor_Sigma2" xml:space="preserve">
|
||
<value>Scale 2 (Medium)</value>
|
||
</data>
|
||
<data name="RetinexProcessor_Sigma2_Desc" xml:space="preserve">
|
||
<value>Medium scale Gaussian kernel sigma for local illumination correction</value>
|
||
</data>
|
||
<data name="RetinexProcessor_Sigma3" xml:space="preserve">
|
||
<value>Scale 3 (Large)</value>
|
||
</data>
|
||
<data name="RetinexProcessor_Sigma3_Desc" xml:space="preserve">
|
||
<value>Large scale Gaussian kernel sigma for global illumination correction</value>
|
||
</data>
|
||
<data name="RetinexProcessor_Gain" xml:space="preserve">
|
||
<value>Gain</value>
|
||
</data>
|
||
<data name="RetinexProcessor_Gain_Desc" xml:space="preserve">
|
||
<value>Output gain factor</value>
|
||
</data>
|
||
<data name="RetinexProcessor_Offset" xml:space="preserve">
|
||
<value>Offset</value>
|
||
</data>
|
||
<data name="RetinexProcessor_Offset_Desc" xml:space="preserve">
|
||
<value>Output offset value</value>
|
||
</data>
|
||
<data name="HDREnhancementProcessor_Name" xml:space="preserve">
|
||
<value>HDR Enhancement</value>
|
||
</data>
|
||
<data name="HDREnhancementProcessor_Description" xml:space="preserve">
|
||
<value>High Dynamic Range image enhancement with tone mapping</value>
|
||
</data>
|
||
<data name="HDREnhancementProcessor_Method" xml:space="preserve">
|
||
<value>Tone Mapping Method</value>
|
||
</data>
|
||
<data name="HDREnhancementProcessor_Method_Desc" xml:space="preserve">
|
||
<value>Select HDR tone mapping algorithm: LocalToneMap, AdaptiveLog, Drago, BilateralToneMap</value>
|
||
</data>
|
||
<data name="HDREnhancementProcessor_Gamma" xml:space="preserve">
|
||
<value>Gamma</value>
|
||
</data>
|
||
<data name="HDREnhancementProcessor_Gamma_Desc" xml:space="preserve">
|
||
<value>Gamma correction value for output brightness adjustment</value>
|
||
</data>
|
||
<data name="HDREnhancementProcessor_Saturation" xml:space="preserve">
|
||
<value>Saturation</value>
|
||
</data>
|
||
<data name="HDREnhancementProcessor_Saturation_Desc" xml:space="preserve">
|
||
<value>Contrast saturation factor for LocalToneMap method</value>
|
||
</data>
|
||
<data name="HDREnhancementProcessor_DetailBoost" xml:space="preserve">
|
||
<value>Detail Boost</value>
|
||
</data>
|
||
<data name="HDREnhancementProcessor_DetailBoost_Desc" xml:space="preserve">
|
||
<value>Detail enhancement factor, higher values reveal more fine details</value>
|
||
</data>
|
||
<data name="HDREnhancementProcessor_SigmaSpace" xml:space="preserve">
|
||
<value>Sigma Space</value>
|
||
</data>
|
||
<data name="HDREnhancementProcessor_SigmaSpace_Desc" xml:space="preserve">
|
||
<value>Spatial sigma for base layer extraction, controls smoothing range</value>
|
||
</data>
|
||
<data name="HDREnhancementProcessor_SigmaColor" xml:space="preserve">
|
||
<value>Sigma Color</value>
|
||
</data>
|
||
<data name="HDREnhancementProcessor_SigmaColor_Desc" xml:space="preserve">
|
||
<value>Color sigma for bilateral tone mapping, controls edge preservation</value>
|
||
</data>
|
||
<data name="HDREnhancementProcessor_Bias" xml:space="preserve">
|
||
<value>Bias</value>
|
||
</data>
|
||
<data name="HDREnhancementProcessor_Bias_Desc" xml:space="preserve">
|
||
<value>Bias for adaptive logarithmic and Drago mapping, controls dark/bright balance</value>
|
||
</data>
|
||
<data name="MirrorProcessor_Name" xml:space="preserve">
|
||
<value>Mirror</value>
|
||
</data>
|
||
<data name="MirrorProcessor_Description" xml:space="preserve">
|
||
<value>Flip image horizontally, vertically, or both</value>
|
||
</data>
|
||
<data name="MirrorProcessor_Direction" xml:space="preserve">
|
||
<value>Direction</value>
|
||
</data>
|
||
<data name="MirrorProcessor_Direction_Desc" xml:space="preserve">
|
||
<value>Flip direction: Horizontal (left-right), Vertical (up-down), Both (180° rotation)</value>
|
||
</data>
|
||
<data name="RotateProcessor_Name" xml:space="preserve">
|
||
<value>Rotate</value>
|
||
</data>
|
||
<data name="RotateProcessor_Description" xml:space="preserve">
|
||
<value>Rotate image by arbitrary angle with optional canvas expansion</value>
|
||
</data>
|
||
<data name="RotateProcessor_Angle" xml:space="preserve">
|
||
<value>Angle</value>
|
||
</data>
|
||
<data name="RotateProcessor_Angle_Desc" xml:space="preserve">
|
||
<value>Rotation angle in degrees, positive is counter-clockwise</value>
|
||
</data>
|
||
<data name="RotateProcessor_ExpandCanvas" xml:space="preserve">
|
||
<value>Expand Canvas</value>
|
||
</data>
|
||
<data name="RotateProcessor_ExpandCanvas_Desc" xml:space="preserve">
|
||
<value>Expand canvas to fit the entire rotated image, otherwise crop to original size</value>
|
||
</data>
|
||
<data name="RotateProcessor_BackgroundValue" xml:space="preserve">
|
||
<value>Background</value>
|
||
</data>
|
||
<data name="RotateProcessor_BackgroundValue_Desc" xml:space="preserve">
|
||
<value>Background fill value (0-255) for areas outside the original image</value>
|
||
</data>
|
||
<data name="RotateProcessor_Interpolation" xml:space="preserve">
|
||
<value>Interpolation</value>
|
||
</data>
|
||
<data name="RotateProcessor_Interpolation_Desc" xml:space="preserve">
|
||
<value>Interpolation method: Nearest (fast), Bilinear (smooth), Bicubic (high quality)</value>
|
||
</data>
|
||
<data name="PseudoColorProcessor_Name" xml:space="preserve">
|
||
<value>Pseudo Color Rendering</value>
|
||
</data>
|
||
<data name="PseudoColorProcessor_Description" xml:space="preserve">
|
||
<value>Map grayscale image to color image using color maps</value>
|
||
</data>
|
||
<data name="PseudoColorProcessor_ColorMap" xml:space="preserve">
|
||
<value>Color Map</value>
|
||
</data>
|
||
<data name="PseudoColorProcessor_ColorMap_Desc" xml:space="preserve">
|
||
<value>Select color mapping table for rendering</value>
|
||
</data>
|
||
<data name="PseudoColorProcessor_MinValue" xml:space="preserve">
|
||
<value>Min Gray Value</value>
|
||
</data>
|
||
<data name="PseudoColorProcessor_MinValue_Desc" xml:space="preserve">
|
||
<value>Gray values below this will be clipped to minimum color</value>
|
||
</data>
|
||
<data name="PseudoColorProcessor_MaxValue" xml:space="preserve">
|
||
<value>Max Gray Value</value>
|
||
</data>
|
||
<data name="PseudoColorProcessor_MaxValue_Desc" xml:space="preserve">
|
||
<value>Gray values above this will be clipped to maximum color</value>
|
||
</data>
|
||
<data name="PseudoColorProcessor_InvertMap" xml:space="preserve">
|
||
<value>Invert Color Map</value>
|
||
</data>
|
||
<data name="PseudoColorProcessor_InvertMap_Desc" xml:space="preserve">
|
||
<value>Reverse the color mapping direction</value>
|
||
</data>
|
||
<data name="FilmEffectProcessor_Name" xml:space="preserve">
|
||
<value>Electronic Film Effect</value>
|
||
</data>
|
||
<data name="FilmEffectProcessor_Description" xml:space="preserve">
|
||
<value>Simulate traditional X-ray film display with window/level and characteristic curves</value>
|
||
</data>
|
||
<data name="FilmEffectProcessor_WindowCenter" xml:space="preserve">
|
||
<value>Window Center</value>
|
||
</data>
|
||
<data name="FilmEffectProcessor_WindowCenter_Desc" xml:space="preserve">
|
||
<value>Center gray value of the display window (Window Level)</value>
|
||
</data>
|
||
<data name="FilmEffectProcessor_WindowWidth" xml:space="preserve">
|
||
<value>Window Width</value>
|
||
</data>
|
||
<data name="FilmEffectProcessor_WindowWidth_Desc" xml:space="preserve">
|
||
<value>Width of the display window, controls visible gray range</value>
|
||
</data>
|
||
<data name="FilmEffectProcessor_Invert" xml:space="preserve">
|
||
<value>Invert (Negative)</value>
|
||
</data>
|
||
<data name="FilmEffectProcessor_Invert_Desc" xml:space="preserve">
|
||
<value>Invert image to negative film effect</value>
|
||
</data>
|
||
<data name="FilmEffectProcessor_Curve" xml:space="preserve">
|
||
<value>Characteristic Curve</value>
|
||
</data>
|
||
<data name="FilmEffectProcessor_Curve_Desc" xml:space="preserve">
|
||
<value>Film characteristic curve: Linear, Sigmoid (S-curve), Logarithmic, Exponential</value>
|
||
</data>
|
||
<data name="FilmEffectProcessor_CurveStrength" xml:space="preserve">
|
||
<value>Curve Strength</value>
|
||
</data>
|
||
<data name="FilmEffectProcessor_CurveStrength_Desc" xml:space="preserve">
|
||
<value>Strength of the characteristic curve effect</value>
|
||
</data>
|
||
<data name="FilmEffectProcessor_EdgeEnhance" xml:space="preserve">
|
||
<value>Edge Enhancement</value>
|
||
</data>
|
||
<data name="FilmEffectProcessor_EdgeEnhance_Desc" xml:space="preserve">
|
||
<value>Edge enhancement strength to simulate film sharpening, 0 to disable</value>
|
||
</data>
|
||
<data name="SubPixelZoomProcessor_Name" xml:space="preserve">
|
||
<value>Sub-Pixel Zoom</value>
|
||
</data>
|
||
<data name="SubPixelZoomProcessor_Description" xml:space="preserve">
|
||
<value>High-quality sub-pixel image magnification with multiple interpolation methods</value>
|
||
</data>
|
||
<data name="SubPixelZoomProcessor_ScaleFactor" xml:space="preserve">
|
||
<value>Scale Factor</value>
|
||
</data>
|
||
<data name="SubPixelZoomProcessor_ScaleFactor_Desc" xml:space="preserve">
|
||
<value>Magnification factor, supports fractional values (e.g. 1.5, 2.3)</value>
|
||
</data>
|
||
<data name="SubPixelZoomProcessor_Interpolation" xml:space="preserve">
|
||
<value>Interpolation</value>
|
||
</data>
|
||
<data name="SubPixelZoomProcessor_Interpolation_Desc" xml:space="preserve">
|
||
<value>Interpolation method: Nearest, Bilinear, Bicubic, Lanczos (highest quality)</value>
|
||
</data>
|
||
<data name="SubPixelZoomProcessor_SharpenAfter" xml:space="preserve">
|
||
<value>Sharpen After Zoom</value>
|
||
</data>
|
||
<data name="SubPixelZoomProcessor_SharpenAfter_Desc" xml:space="preserve">
|
||
<value>Apply sharpening after magnification to compensate interpolation blur</value>
|
||
</data>
|
||
<data name="SubPixelZoomProcessor_SharpenStrength" xml:space="preserve">
|
||
<value>Sharpen Strength</value>
|
||
</data>
|
||
<data name="SubPixelZoomProcessor_SharpenStrength_Desc" xml:space="preserve">
|
||
<value>Strength of post-zoom sharpening</value>
|
||
</data>
|
||
<data name="SuperResolutionProcessor_Name" xml:space="preserve">
|
||
<value>Super Resolution (AI)</value>
|
||
</data>
|
||
<data name="SuperResolutionProcessor_Description" xml:space="preserve">
|
||
<value>Deep learning based super resolution using EDSR/FSRCNN models</value>
|
||
</data>
|
||
<data name="SuperResolutionProcessor_Model" xml:space="preserve">
|
||
<value>Model</value>
|
||
</data>
|
||
<data name="SuperResolutionProcessor_Model_Desc" xml:space="preserve">
|
||
<value>Super resolution model: EDSR (high quality, slow) or FSRCNN (fast, lightweight)</value>
|
||
</data>
|
||
<data name="SuperResolutionProcessor_Scale" xml:space="preserve">
|
||
<value>Scale Factor</value>
|
||
</data>
|
||
<data name="SuperResolutionProcessor_Scale_Desc" xml:space="preserve">
|
||
<value>Upscaling factor: 2x, 3x, or 4x</value>
|
||
</data>
|
||
<data name="ColorLayerProcessor_Name" xml:space="preserve">
|
||
<value>Color Layer Separation</value>
|
||
</data>
|
||
<data name="ColorLayerProcessor_Description" xml:space="preserve">
|
||
<value>Separate grayscale image into distinct intensity layers</value>
|
||
</data>
|
||
<data name="ColorLayerProcessor_Layers" xml:space="preserve">
|
||
<value>Layers</value>
|
||
</data>
|
||
<data name="ColorLayerProcessor_Layers_Desc" xml:space="preserve">
|
||
<value>Number of intensity layers (2-16)</value>
|
||
</data>
|
||
<data name="ColorLayerProcessor_Method" xml:space="preserve">
|
||
<value>Method</value>
|
||
</data>
|
||
<data name="ColorLayerProcessor_Method_Desc" xml:space="preserve">
|
||
<value>Thresholding method: Uniform (equal intervals) or Otsu (adaptive)</value>
|
||
</data>
|
||
<data name="ColorLayerProcessor_OutputMode" xml:space="preserve">
|
||
<value>Output Mode</value>
|
||
</data>
|
||
<data name="ColorLayerProcessor_OutputMode_Desc" xml:space="preserve">
|
||
<value>Output mapping: EqualSpaced (evenly distributed) or MidValue (interval midpoint)</value>
|
||
</data>
|
||
<data name="ColorLayerProcessor_TargetLayer" xml:space="preserve">
|
||
<value>Target Layer</value>
|
||
</data>
|
||
<data name="ColorLayerProcessor_TargetLayer_Desc" xml:space="preserve">
|
||
<value>0 = show all layers, 1~N = show only the specified layer (white) with others black</value>
|
||
</data>
|
||
<data name="HierarchicalEnhancementProcessor_Name" xml:space="preserve">
|
||
<value>Hierarchical Enhancement</value>
|
||
</data>
|
||
<data name="HierarchicalEnhancementProcessor_Description" xml:space="preserve">
|
||
<value>Enhance image details at different scales using Laplacian pyramid decomposition</value>
|
||
</data>
|
||
<data name="HierarchicalEnhancementProcessor_Levels" xml:space="preserve">
|
||
<value>Pyramid Levels</value>
|
||
</data>
|
||
<data name="HierarchicalEnhancementProcessor_Levels_Desc" xml:space="preserve">
|
||
<value>Number of pyramid decomposition levels (2-8)</value>
|
||
</data>
|
||
<data name="HierarchicalEnhancementProcessor_FineGain" xml:space="preserve">
|
||
<value>Fine Detail Gain</value>
|
||
</data>
|
||
<data name="HierarchicalEnhancementProcessor_FineGain_Desc" xml:space="preserve">
|
||
<value>Gain for finest detail layer (edges, textures). 1.0 = original, >1 = enhance, <1 = suppress</value>
|
||
</data>
|
||
<data name="HierarchicalEnhancementProcessor_MediumGain" xml:space="preserve">
|
||
<value>Medium Detail Gain</value>
|
||
</data>
|
||
<data name="HierarchicalEnhancementProcessor_MediumGain_Desc" xml:space="preserve">
|
||
<value>Gain for medium-scale details. 1.0 = original, >1 = enhance, <1 = suppress</value>
|
||
</data>
|
||
<data name="HierarchicalEnhancementProcessor_CoarseGain" xml:space="preserve">
|
||
<value>Coarse Detail Gain</value>
|
||
</data>
|
||
<data name="HierarchicalEnhancementProcessor_CoarseGain_Desc" xml:space="preserve">
|
||
<value>Gain for coarse-scale details (large structures). 1.0 = original, >1 = enhance, <1 = suppress</value>
|
||
</data>
|
||
<data name="HierarchicalEnhancementProcessor_BaseGain" xml:space="preserve">
|
||
<value>Base Layer Gain</value>
|
||
</data>
|
||
<data name="HierarchicalEnhancementProcessor_BaseGain_Desc" xml:space="preserve">
|
||
<value>Gain for the base (lowest frequency) layer, controls overall brightness</value>
|
||
</data>
|
||
<data name="HierarchicalEnhancementProcessor_ClipLimit" xml:space="preserve">
|
||
<value>Clip Limit</value>
|
||
</data>
|
||
<data name="HierarchicalEnhancementProcessor_ClipLimit_Desc" xml:space="preserve">
|
||
<value>Limit detail amplitude to prevent over-enhancement artifacts. 0 = no limit</value>
|
||
</data>
|
||
<data name="HistogramOverlayProcessor_Name" xml:space="preserve">
|
||
<value>Histogram Overlay</value>
|
||
</data>
|
||
<data name="HistogramOverlayProcessor_Description" xml:space="preserve">
|
||
<value>Compute grayscale histogram and overlay it on the top-left corner of the image with statistics</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_Name" xml:space="preserve">
|
||
<value>Ellipse Detection</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_Description" xml:space="preserve">
|
||
<value>Detect ellipses in image using contour analysis and ellipse fitting</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_MinThreshold" xml:space="preserve">
|
||
<value>Min Threshold</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_MinThreshold_Desc" xml:space="preserve">
|
||
<value>Minimum threshold for dual-threshold segmentation (0-255)</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_MaxThreshold" xml:space="preserve">
|
||
<value>Max Threshold</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_MaxThreshold_Desc" xml:space="preserve">
|
||
<value>Maximum threshold for dual-threshold segmentation (0-255)</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_UseOtsu" xml:space="preserve">
|
||
<value>Use Otsu Auto Threshold</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_UseOtsu_Desc" xml:space="preserve">
|
||
<value>When enabled, optimal threshold will be calculated automatically</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_MinContourPoints" xml:space="preserve">
|
||
<value>Min Contour Points</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_MinContourPoints_Desc" xml:space="preserve">
|
||
<value>Minimum number of contour points for ellipse fitting</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_MinArea" xml:space="preserve">
|
||
<value>Min Area</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_MinArea_Desc" xml:space="preserve">
|
||
<value>Filter ellipses smaller than this area</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_MaxArea" xml:space="preserve">
|
||
<value>Max Area</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_MaxArea_Desc" xml:space="preserve">
|
||
<value>Filter ellipses larger than this area</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_MaxEccentricity" xml:space="preserve">
|
||
<value>Max Eccentricity</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_MaxEccentricity_Desc" xml:space="preserve">
|
||
<value>Maximum eccentricity (0=circle, close to 1=flat ellipse)</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_MaxFitError" xml:space="preserve">
|
||
<value>Max Fit Error</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_MaxFitError_Desc" xml:space="preserve">
|
||
<value>Maximum fitting error in pixels</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_Thickness" xml:space="preserve">
|
||
<value>Line Thickness</value>
|
||
</data>
|
||
<data name="EllipseDetectionProcessor_Thickness_Desc" xml:space="preserve">
|
||
<value>Thickness of ellipse drawing lines</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_Name" xml:space="preserve">
|
||
<value>Line Measurement</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_Description" xml:space="preserve">
|
||
<value>Measure distance between two points in the image</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_X1" xml:space="preserve">
|
||
<value>Point 1 X</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_X1_Desc" xml:space="preserve">
|
||
<value>X coordinate of the first point (pixels)</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_Y1" xml:space="preserve">
|
||
<value>Point 1 Y</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_Y1_Desc" xml:space="preserve">
|
||
<value>Y coordinate of the first point (pixels)</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_X2" xml:space="preserve">
|
||
<value>Point 2 X</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_X2_Desc" xml:space="preserve">
|
||
<value>X coordinate of the second point (pixels)</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_Y2" xml:space="preserve">
|
||
<value>Point 2 Y</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_Y2_Desc" xml:space="preserve">
|
||
<value>Y coordinate of the second point (pixels)</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_PixelSize" xml:space="preserve">
|
||
<value>Pixel Size</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_PixelSize_Desc" xml:space="preserve">
|
||
<value>Physical size per pixel for calibrated measurement</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_Unit" xml:space="preserve">
|
||
<value>Unit</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_Unit_Desc" xml:space="preserve">
|
||
<value>Measurement unit: px (pixels), mm, μm, cm</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_Thickness" xml:space="preserve">
|
||
<value>Line Thickness</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_Thickness_Desc" xml:space="preserve">
|
||
<value>Thickness of the measurement line</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_ShowLabel" xml:space="preserve">
|
||
<value>Show Label</value>
|
||
</data>
|
||
<data name="LineMeasurementProcessor_ShowLabel_Desc" xml:space="preserve">
|
||
<value>Display distance label on the measurement line</value>
|
||
</data>
|
||
<data name="FillRateProcessor_Name" xml:space="preserve">
|
||
<value>Via Fill Rate (Tilted Geometric)</value>
|
||
</data>
|
||
<data name="FillRateProcessor_Description" xml:space="preserve">
|
||
<value>Measure via fill rate using 4-ellipse geometric projection on tilted X-Ray image</value>
|
||
</data>
|
||
<data name="FillRateProcessor_THTLimit" xml:space="preserve">
|
||
<value>THT Limit (%)</value>
|
||
</data>
|
||
<data name="FillRateProcessor_THTLimit_Desc" xml:space="preserve">
|
||
<value>Minimum fill rate to pass (default 75% per IPC-610)</value>
|
||
</data>
|
||
<data name="FillRateProcessor_Thickness" xml:space="preserve">
|
||
<value>Line Thickness</value>
|
||
</data>
|
||
<data name="FillRateProcessor_Thickness_Desc" xml:space="preserve">
|
||
<value>Thickness of ROI ellipse lines</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_Name" xml:space="preserve">
|
||
<value>BGA Void Rate (Auto)</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_Description" xml:space="preserve">
|
||
<value>Auto-detect BGA solder balls and measure void rate (two-step: locate BGA → detect voids)</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_BgaMinArea" xml:space="preserve">
|
||
<value>BGA Min Area</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_BgaMinArea_Desc" xml:space="preserve">
|
||
<value>Minimum pixel area to identify as a BGA solder ball</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_RoiMode" xml:space="preserve">
|
||
<value>ROI Mode</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_RoiMode_Desc" xml:space="preserve">
|
||
<value>None: full image; Polygon: polygon ROI (draw ROI first)</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_BgaMaxArea" xml:space="preserve">
|
||
<value>BGA Max Area</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_BgaMaxArea_Desc" xml:space="preserve">
|
||
<value>Maximum pixel area to identify as a BGA solder ball</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_BgaBlurSize" xml:space="preserve">
|
||
<value>Blur Kernel</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_BgaBlurSize_Desc" xml:space="preserve">
|
||
<value>Gaussian blur kernel size for BGA detection (odd number)</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_BgaCircularity" xml:space="preserve">
|
||
<value>Min Circularity</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_BgaCircularity_Desc" xml:space="preserve">
|
||
<value>Minimum circularity to filter non-circular contours (0~1, 1=perfect circle)</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_VoidLimit" xml:space="preserve">
|
||
<value>Void Limit (%)</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_VoidLimit_Desc" xml:space="preserve">
|
||
<value>Maximum allowed void rate (default 25% per IPC-7095)</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_MinThreshold" xml:space="preserve">
|
||
<value>Min Threshold</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_MinThreshold_Desc" xml:space="preserve">
|
||
<value>Minimum gray value for void detection (pixels in [Min,Max] = void)</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_MaxThreshold" xml:space="preserve">
|
||
<value>Max Threshold</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_MaxThreshold_Desc" xml:space="preserve">
|
||
<value>Maximum gray value for void detection</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_MinVoidArea" xml:space="preserve">
|
||
<value>Min Void Area</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_MinVoidArea_Desc" xml:space="preserve">
|
||
<value>Minimum pixel area to count as a void (filter noise)</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_Thickness" xml:space="preserve">
|
||
<value>Line Thickness</value>
|
||
</data>
|
||
<data name="BgaVoidRateProcessor_Thickness_Desc" xml:space="preserve">
|
||
<value>Thickness of contour lines</value>
|
||
</data>
|
||
<data name="PointToLineProcessor_Name" xml:space="preserve">
|
||
<value>Point-to-Line Distance</value>
|
||
</data>
|
||
<data name="PointToLineProcessor_Description" xml:space="preserve">
|
||
<value>Measure perpendicular distance from a point to a line</value>
|
||
</data>
|
||
<data name="PointToLineProcessor_PixelSize" xml:space="preserve">
|
||
<value>Pixel Size</value>
|
||
</data>
|
||
<data name="PointToLineProcessor_PixelSize_Desc" xml:space="preserve">
|
||
<value>Physical size per pixel for calibrated measurement</value>
|
||
</data>
|
||
<data name="PointToLineProcessor_Unit" xml:space="preserve">
|
||
<value>Unit</value>
|
||
</data>
|
||
<data name="PointToLineProcessor_Unit_Desc" xml:space="preserve">
|
||
<value>Measurement unit: px / mm / μm / cm</value>
|
||
</data>
|
||
<data name="PointToLineProcessor_Thickness" xml:space="preserve">
|
||
<value>Line Thickness</value>
|
||
</data>
|
||
<data name="PointToLineProcessor_Thickness_Desc" xml:space="preserve">
|
||
<value>Thickness of drawing lines</value>
|
||
</data>
|
||
|
||
<!-- RotatedTemplateMatchingProcessor -->
|
||
<data name="RotatedTemplateMatchingProcessor_Name" xml:space="preserve">
|
||
<value>Rotated multi-target template matching</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_Description" xml:space="preserve">
|
||
<value>Rotation and multi-target matching via TemplateMatchLib, with pyramid levels and SIMD acceleration.</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_TemplatePath" xml:space="preserve">
|
||
<value>Template path</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_TemplatePath_Desc" xml:space="preserve">
|
||
<value>Path to the template image (grayscale or color; color is converted to grayscale).</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_MatchThreshold" xml:space="preserve">
|
||
<value>Match threshold</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_MatchThreshold_Desc" xml:space="preserve">
|
||
<value>Score threshold; typical range 0.7–0.95.</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_MaxMatchCount" xml:space="preserve">
|
||
<value>Max matches</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_MaxMatchCount_Desc" xml:space="preserve">
|
||
<value>Maximum number of targets to return.</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_ToleranceAngle" xml:space="preserve">
|
||
<value>Angle tolerance (°)</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_ToleranceAngle_Desc" xml:space="preserve">
|
||
<value>Angular search range in degrees; 0 disables rotation search.</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_MaxOverlap" xml:space="preserve">
|
||
<value>Max overlap</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_MaxOverlap_Desc" xml:space="preserve">
|
||
<value>Maximum allowed overlap ratio between multiple detections.</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_MinReduceArea" xml:space="preserve">
|
||
<value>Min reduce area</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_MinReduceArea_Desc" xml:space="preserve">
|
||
<value>Minimum pyramid level area (controls depth; smaller tends to be faster).</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_UseSIMD" xml:space="preserve">
|
||
<value>SIMD acceleration</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_UseSIMD_Desc" xml:space="preserve">
|
||
<value>Use SIMD (e.g. SSE) to accelerate matching.</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_UseSubPixel" xml:space="preserve">
|
||
<value>Sub-pixel</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_UseSubPixel_Desc" xml:space="preserve">
|
||
<value>Enable sub-pixel refinement (more accurate, slightly slower).</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_DrawResults" xml:space="preserve">
|
||
<value>Draw results</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_DrawResults_Desc" xml:space="preserve">
|
||
<value>Draw match rectangles and center marks on the output image.</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_DrawThickness" xml:space="preserve">
|
||
<value>Line thickness</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_DrawThickness_Desc" xml:space="preserve">
|
||
<value>Stroke width for rectangles and crosshairs (pixels).</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_Msg_TemplateNotFound" xml:space="preserve">
|
||
<value>Template file not found</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_Msg_TemplateLearnFailed" xml:space="preserve">
|
||
<value>Template learn failed</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_Msg_DllNotFound" xml:space="preserve">
|
||
<value>TemplateMatchLib.dll not found — build the C++ DLL project first.</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_ModelPath" xml:space="preserve">
|
||
<value>Model path</value>
|
||
</data>
|
||
<data name="RotatedTemplateMatchingProcessor_ModelPath_Desc" xml:space="preserve">
|
||
<value>Path to a pre-trained model file (.tmmodel). If it exists the model is loaded directly; otherwise the template is learned and the model is saved automatically.</value>
|
||
</data>
|
||
|
||
<data name="AngleMeasurementProcessor_Name" xml:space="preserve">
|
||
<value>Angle Measurement</value>
|
||
</data>
|
||
<data name="AngleMeasurementProcessor_Description" xml:space="preserve">
|
||
<value>Measure angle between two rays sharing a common vertex</value>
|
||
</data>
|
||
<data name="VoidMeasurementProcessor_Name" xml:space="preserve">
|
||
<value>Void Measurement</value>
|
||
</data>
|
||
<data name="VoidMeasurementProcessor_Description" xml:space="preserve">
|
||
<value>Detect voids in ROI and calculate void rate</value>
|
||
</data>
|
||
<data name="VoidMeasurementProcessor_MinThreshold" xml:space="preserve">
|
||
<value>Min Threshold</value>
|
||
</data>
|
||
<data name="VoidMeasurementProcessor_MinThreshold_Desc" xml:space="preserve">
|
||
<value>Lower grayscale bound for void detection</value>
|
||
</data>
|
||
<data name="VoidMeasurementProcessor_MaxThreshold" xml:space="preserve">
|
||
<value>Max Threshold</value>
|
||
</data>
|
||
<data name="VoidMeasurementProcessor_MaxThreshold_Desc" xml:space="preserve">
|
||
<value>Upper grayscale bound for void detection</value>
|
||
</data>
|
||
<data name="VoidMeasurementProcessor_MinVoidArea" xml:space="preserve">
|
||
<value>Min Void Area</value>
|
||
</data>
|
||
<data name="VoidMeasurementProcessor_MinVoidArea_Desc" xml:space="preserve">
|
||
<value>Voids smaller than this area are ignored (pixels)</value>
|
||
</data>
|
||
<data name="VoidMeasurementProcessor_MergeRadius" xml:space="preserve">
|
||
<value>Merge Radius</value>
|
||
</data>
|
||
<data name="VoidMeasurementProcessor_MergeRadius_Desc" xml:space="preserve">
|
||
<value>Dilation radius for merging adjacent voids (0=no merge)</value>
|
||
</data>
|
||
<data name="VoidMeasurementProcessor_BlurSize" xml:space="preserve">
|
||
<value>Blur Size</value>
|
||
</data>
|
||
<data name="VoidMeasurementProcessor_BlurSize_Desc" xml:space="preserve">
|
||
<value>Gaussian blur kernel size (odd number)</value>
|
||
</data>
|
||
<data name="VoidMeasurementProcessor_VoidLimit" xml:space="preserve">
|
||
<value>Void Limit (%)</value>
|
||
</data>
|
||
<data name="VoidMeasurementProcessor_VoidLimit_Desc" xml:space="preserve">
|
||
<value>Void rate above this limit is classified as FAIL</value>
|
||
</data>
|
||
<data name="EmbossProcessor_Name" xml:space="preserve">
|
||
<value>Emboss Pseudo-3D</value>
|
||
</data>
|
||
<data name="EmbossProcessor_Description" xml:space="preserve">
|
||
<value>Emboss effect simulating 3D relief for enhanced visualization of surface structures</value>
|
||
</data>
|
||
<data name="EmbossProcessor_Direction" xml:space="preserve">
|
||
<value>Light Direction</value>
|
||
</data>
|
||
<data name="EmbossProcessor_Direction_Desc" xml:space="preserve">
|
||
<value>Simulated light source direction for emboss effect</value>
|
||
</data>
|
||
<data name="EmbossProcessor_Strength" xml:space="preserve">
|
||
<value>Emboss Depth</value>
|
||
</data>
|
||
<data name="EmbossProcessor_Strength_Desc" xml:space="preserve">
|
||
<value>Depth of emboss effect (higher = stronger relief)</value>
|
||
</data>
|
||
<data name="EmbossProcessor_BlendRatio" xml:space="preserve">
|
||
<value>Original Blend</value>
|
||
</data>
|
||
<data name="EmbossProcessor_BlendRatio_Desc" xml:space="preserve">
|
||
<value>Blend ratio with original image (0=pure emboss, 1=original only)</value>
|
||
</data>
|
||
<data name="EmbossProcessor_GrayOffset" xml:space="preserve">
|
||
<value>Gray Offset</value>
|
||
</data>
|
||
<data name="EmbossProcessor_GrayOffset_Desc" xml:space="preserve">
|
||
<value>Gray level offset for flat areas (128=mid-gray base)</value>
|
||
</data>
|
||
<data name="OrProcessor_Name" xml:space="preserve">
|
||
<value>Bitwise OR Operation</value>
|
||
</data>
|
||
<data name="OrProcessor_Description" xml:space="preserve">
|
||
<value>Perform bitwise OR operation on images, supporting OR operation with fixed values, which can be used for image merging and mask operations.</value>
|
||
</data>
|
||
<data name="OrProcessor_Value" xml:space="preserve">
|
||
<value>Value</value>
|
||
</data>
|
||
<data name="OrProcessor_Value_Desc" xml:space="preserve">
|
||
<value>Value for bitwise OR operation with each pixel of the image (0–255)</value>
|
||
</data>
|
||
<data name="DifferenceProcessor_Name" xml:space="preserve">
|
||
<value>Differential Operation</value>
|
||
</data>
|
||
<data name="DifferenceProcessor_Description" xml:space="preserve">
|
||
<value>Perform differential operation on images, supporting horizontal, vertical and diagonal differentiation, which can be used for edge detection.</value>
|
||
</data>
|
||
<data name="DifferenceProcessor_Direction" xml:space="preserve">
|
||
<value>Direction</value>
|
||
</data>
|
||
<data name="DifferenceProcessor_Direction_Desc" xml:space="preserve">
|
||
<value>Differential Directions: Horizontal, Vertical, Both (Gradient Magnitude)</value>
|
||
</data>
|
||
<data name="DifferenceProcessor_Normalize" xml:space="preserve">
|
||
<value>Normalized Output</value>
|
||
</data>
|
||
<data name="DifferenceProcessor_Normalize_Desc" xml:space="preserve">
|
||
<value>Normalize the result to the range of 0-255.</value>
|
||
</data>
|
||
<data name="MultiplicationProcessor_Name" xml:space="preserve">
|
||
<value>Multiplication Operation</value>
|
||
</data>
|
||
<data name="MultiplicationProcessor_Description" xml:space="preserve">
|
||
<value>Perform multiplication operations on image pixel values, commonly used for image enhancement and contrast adjustment.</value>
|
||
</data>
|
||
<data name="MultiplicationProcessor_Multiplier" xml:space="preserve">
|
||
<value>Multiplier</value>
|
||
</data>
|
||
<data name="MultiplicationProcessor_Multiplier_Desc" xml:space="preserve">
|
||
<value>Pixel values are multiplied by this coefficient (0.1–10.0).</value>
|
||
</data>
|
||
<data name="MultiplicationProcessor_Normalize" xml:space="preserve">
|
||
<value>Normalized Output</value>
|
||
</data>
|
||
<data name="MultiplicationProcessor_Normalize_Desc" xml:space="preserve">
|
||
<value>Normalize the result to the range of 0–255</value>
|
||
</data>
|
||
<data name="IntegralProcessor_Name" xml:space="preserve">
|
||
<value>Integral Calculation</value>
|
||
</data>
|
||
<data name="IntegralProcessor_Description" xml:space="preserve">
|
||
<value>Compute the integral image (cumulative sum) for fast region summation.</value>
|
||
</data>
|
||
<data name="IntegralProcessor_Normalize" xml:space="preserve">
|
||
<value>Normalized Output</value>
|
||
</data>
|
||
<data name="IntegralProcessor_Normalize_Desc" xml:space="preserve">
|
||
<value>Normalize the result to the range of 0–255</value>
|
||
</data>
|
||
<!-- Nine-Point Calibration -->
|
||
<data name="CalibrationToolTitle" xml:space="preserve">
|
||
<value>Nine-Point Calibration Tool</value>
|
||
</data>
|
||
<data name="CalibrationLoadImage" xml:space="preserve">
|
||
<value>Load Image</value>
|
||
</data>
|
||
<data name="CalibrationLoadCsv" xml:space="preserve">
|
||
<value>Load from CSV</value>
|
||
</data>
|
||
<data name="CalibrationExecute" xml:space="preserve">
|
||
<value>Calibrate</value>
|
||
</data>
|
||
<data name="CalibrationSave" xml:space="preserve">
|
||
<value>Save Calibration</value>
|
||
</data>
|
||
<data name="CalibrationLoad" xml:space="preserve">
|
||
<value>Load Calibration</value>
|
||
</data>
|
||
<data name="CalibrationShowWorld" xml:space="preserve">
|
||
<value>Show World Coordinates</value>
|
||
</data>
|
||
<data name="CalibrationPointList" xml:space="preserve">
|
||
<value>Calibration Points</value>
|
||
</data>
|
||
<data name="CalibrationPixelX" xml:space="preserve">
|
||
<value>Pixel X</value>
|
||
</data>
|
||
<data name="CalibrationPixelY" xml:space="preserve">
|
||
<value>Pixel Y</value>
|
||
</data>
|
||
<data name="CalibrationWorldX" xml:space="preserve">
|
||
<value>World X</value>
|
||
</data>
|
||
<data name="CalibrationWorldY" xml:space="preserve">
|
||
<value>World Y</value>
|
||
</data>
|
||
<data name="CalibrationStatusReady" xml:space="preserve">
|
||
<value>Ready</value>
|
||
</data>
|
||
<data name="CalibrationStatusImageLoaded" xml:space="preserve">
|
||
<value>Status: Image loaded
|
||
{0}
|
||
Right-click on image to view coordinate conversion</value>
|
||
</data>
|
||
<data name="CalibrationStatusCsvLoaded" xml:space="preserve">
|
||
<value>Status: Loaded {0} calibration points from CSV
|
||
{1}</value>
|
||
</data>
|
||
<data name="CalibrationStatusSuccess" xml:space="preserve">
|
||
<value>Status: Calibration successful! Using {0} points</value>
|
||
</data>
|
||
<data name="CalibrationStatusFailed" xml:space="preserve">
|
||
<value>Status: Calibration failed</value>
|
||
</data>
|
||
<data name="CalibrationStatusSaved" xml:space="preserve">
|
||
<value>Status: Calibration saved to
|
||
{0}</value>
|
||
</data>
|
||
<data name="CalibrationStatusLoaded" xml:space="preserve">
|
||
<value>Status: Calibration loaded from
|
||
{0}</value>
|
||
</data>
|
||
<data name="CalibrationCoordinates" xml:space="preserve">
|
||
<value>Pixel coordinates: ({0:F2}, {1:F2})
|
||
World coordinates: ({2:F2}, {3:F2})</value>
|
||
</data>
|
||
<data name="CalibrationErrorMinPoints" xml:space="preserve">
|
||
<value>At least 4 calibration points required!</value>
|
||
</data>
|
||
<data name="CalibrationSuccessTitle" xml:space="preserve">
|
||
<value>Success</value>
|
||
</data>
|
||
<data name="CalibrationSuccessMessage" xml:space="preserve">
|
||
<value>Calibration completed!</value>
|
||
</data>
|
||
<data name="CalibrationSaveSuccess" xml:space="preserve">
|
||
<value>Save successful!</value>
|
||
</data>
|
||
<data name="CalibrationLoadSuccess" xml:space="preserve">
|
||
<value>Load successful!</value>
|
||
</data>
|
||
<data name="CalibrationLoadFailed" xml:space="preserve">
|
||
<value>Load failed!</value>
|
||
</data>
|
||
<!-- Chessboard Calibration -->
|
||
<data name="ChessboardToolTitle" xml:space="preserve">
|
||
<value>Chessboard Calibration Tool</value>
|
||
</data>
|
||
<data name="ChessboardAddImages" xml:space="preserve">
|
||
<value>Add Images</value>
|
||
</data>
|
||
<data name="ChessboardClearImages" xml:space="preserve">
|
||
<value>Clear List</value>
|
||
</data>
|
||
<data name="ChessboardCalibrate" xml:space="preserve">
|
||
<value>Calibrate</value>
|
||
</data>
|
||
<data name="ChessboardSave" xml:space="preserve">
|
||
<value>Save Calibration</value>
|
||
</data>
|
||
<data name="ChessboardLoad" xml:space="preserve">
|
||
<value>Load Calibration</value>
|
||
</data>
|
||
<data name="ChessboardUndistort" xml:space="preserve">
|
||
<value>Undistort Image</value>
|
||
</data>
|
||
<data name="ChessboardParameters" xml:space="preserve">
|
||
<value>Chessboard Parameters</value>
|
||
</data>
|
||
<data name="ChessboardWidth" xml:space="preserve">
|
||
<value>Inner Corners Width:</value>
|
||
</data>
|
||
<data name="ChessboardHeight" xml:space="preserve">
|
||
<value>Inner Corners Height:</value>
|
||
</data>
|
||
<data name="ChessboardSquareSize" xml:space="preserve">
|
||
<value>Square Size (mm):</value>
|
||
</data>
|
||
<data name="ChessboardImageList" xml:space="preserve">
|
||
<value>Calibration Images</value>
|
||
</data>
|
||
<data name="ChessboardStatusInfo" xml:space="preserve">
|
||
<value>Status Information</value>
|
||
</data>
|
||
<data name="ChessboardStatusReady" xml:space="preserve">
|
||
<value>Ready</value>
|
||
</data>
|
||
<data name="ChessboardStatusAdded" xml:space="preserve">
|
||
<value>Added {0} images</value>
|
||
</data>
|
||
<data name="ChessboardStatusCleared" xml:space="preserve">
|
||
<value>Image list cleared</value>
|
||
</data>
|
||
<data name="ChessboardStatusCalibrating" xml:space="preserve">
|
||
<value>Calibrating, please wait...</value>
|
||
</data>
|
||
<data name="ChessboardStatusSuccess" xml:space="preserve">
|
||
<value>Calibration successful!
|
||
Overall reprojection error: {0:F4} pixels
|
||
|
||
{1}</value>
|
||
</data>
|
||
<data name="ChessboardStatusFailed" xml:space="preserve">
|
||
<value>Calibration failed: {0}</value>
|
||
</data>
|
||
<data name="ChessboardStatusSaved" xml:space="preserve">
|
||
<value>Calibration saved:
|
||
{0}</value>
|
||
</data>
|
||
<data name="ChessboardStatusLoaded" xml:space="preserve">
|
||
<value>Calibration loaded:
|
||
{0}</value>
|
||
</data>
|
||
<data name="ChessboardStatusUndistorted" xml:space="preserve">
|
||
<value>Image undistorted:
|
||
{0}</value>
|
||
</data>
|
||
<data name="ChessboardStatusImageError" xml:space="preserve">
|
||
<value>Image {0}
|
||
Reprojection error: {1:F4} pixels</value>
|
||
</data>
|
||
<data name="ChessboardProgressPreparing" xml:space="preserve">
|
||
<value>Preparing calibration...</value>
|
||
</data>
|
||
<data name="ChessboardProgressDetecting" xml:space="preserve">
|
||
<value>Detecting corners ({0}/{1})</value>
|
||
</data>
|
||
<data name="ChessboardProgressCalibrating" xml:space="preserve">
|
||
<value>Performing camera calibration...</value>
|
||
</data>
|
||
<data name="ChessboardProgressCalculating" xml:space="preserve">
|
||
<value>Calculating reprojection errors ({0}/{1})</value>
|
||
</data>
|
||
<data name="ChessboardProgressComplete" xml:space="preserve">
|
||
<value>Calibration complete</value>
|
||
</data>
|
||
<data name="ChessboardProgressFailed" xml:space="preserve">
|
||
<value>Calibration failed</value>
|
||
</data>
|
||
<data name="ChessboardErrorMinImages" xml:space="preserve">
|
||
<value>At least 3 images required!</value>
|
||
</data>
|
||
<data name="ChessboardErrorInsufficientValid" xml:space="preserve">
|
||
<value>Insufficient valid images, need at least 3, current {0}</value>
|
||
</data>
|
||
<data name="ChessboardSaveSuccess" xml:space="preserve">
|
||
<value>Save successful!</value>
|
||
</data>
|
||
<data name="ChessboardLoadSuccess" xml:space="preserve">
|
||
<value>Load successful!</value>
|
||
</data>
|
||
<data name="ChessboardCalibrationComplete" xml:space="preserve">
|
||
<value>Calibration completed!</value>
|
||
</data>
|
||
<data name="ChessboardImageError" xml:space="preserve">
|
||
<value>Image{0}: {1:F4} pixels</value>
|
||
</data>
|
||
|
||
<!-- EdgeLineFitProcessor -->
|
||
<data name="EdgeLineFitProcessor_Name" xml:space="preserve">
|
||
<value>Edge Find Line Fit</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_Description" xml:space="preserve">
|
||
<value>Place calipers along a search line to detect edge points and fit a line (supports Least Squares and RANSAC)</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_CaliperCount" xml:space="preserve">
|
||
<value>Caliper Count</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_CaliperCount_Desc" xml:space="preserve">
|
||
<value>Number of calipers placed evenly along the search line</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_CaliperWidth" xml:space="preserve">
|
||
<value>Caliper Width</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_CaliperWidth_Desc" xml:space="preserve">
|
||
<value>Search length of each caliper (pixels), perpendicular to the search line</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_EdgePolarity" xml:space="preserve">
|
||
<value>Edge Polarity</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_EdgePolarity_Desc" xml:space="preserve">
|
||
<value>Edge direction: BrightToDark, DarkToBright, or Both</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_EdgeThreshold" xml:space="preserve">
|
||
<value>Edge Threshold</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_EdgeThreshold_Desc" xml:space="preserve">
|
||
<value>Gradient strength threshold; edges below this value are ignored</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_Sigma" xml:space="preserve">
|
||
<value>Smoothing Sigma</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_Sigma_Desc" xml:space="preserve">
|
||
<value>Gaussian smoothing standard deviation for noise suppression (larger = smoother)</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_FitMethod" xml:space="preserve">
|
||
<value>Fit Method</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_FitMethod_Desc" xml:space="preserve">
|
||
<value>Line fitting algorithm: LeastSquares or RANSAC (robust, rejects outliers)</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_RansacThreshold" xml:space="preserve">
|
||
<value>RANSAC Threshold</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_RansacThreshold_Desc" xml:space="preserve">
|
||
<value>RANSAC inlier distance threshold (pixels); points closer than this to the line are inliers</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_Thickness" xml:space="preserve">
|
||
<value>Line Thickness</value>
|
||
</data>
|
||
<data name="EdgeLineFitProcessor_Thickness_Desc" xml:space="preserve">
|
||
<value>Drawing thickness for result visualization</value>
|
||
</data>
|
||
|
||
<!-- EdgeCircleFitProcessor -->
|
||
<data name="EdgeCircleFitProcessor_Name" xml:space="preserve">
|
||
<value>Edge Find Circle Fit</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_Description" xml:space="preserve">
|
||
<value>Place calipers along estimated circle to detect edge points and fit a circle (supports Least Squares and RANSAC)</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_CaliperCount" xml:space="preserve">
|
||
<value>Caliper Count</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_CaliperCount_Desc" xml:space="preserve">
|
||
<value>Number of calipers placed evenly around the circle</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_CaliperWidth" xml:space="preserve">
|
||
<value>Caliper Width</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_CaliperWidth_Desc" xml:space="preserve">
|
||
<value>Search length of each caliper along radial direction (pixels)</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_EdgePolarity" xml:space="preserve">
|
||
<value>Edge Polarity</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_EdgePolarity_Desc" xml:space="preserve">
|
||
<value>Edge direction: BrightToDark, DarkToBright, or Both</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_EdgeThreshold" xml:space="preserve">
|
||
<value>Edge Threshold</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_EdgeThreshold_Desc" xml:space="preserve">
|
||
<value>Gradient strength threshold; edges below this value are ignored</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_Sigma" xml:space="preserve">
|
||
<value>Smoothing Sigma</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_Sigma_Desc" xml:space="preserve">
|
||
<value>Gaussian smoothing standard deviation for noise suppression</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_SearchDirection" xml:space="preserve">
|
||
<value>Search Direction</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_SearchDirection_Desc" xml:space="preserve">
|
||
<value>Caliper search direction: Inward (toward center), Outward (away from center), Both</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_FitMethod" xml:space="preserve">
|
||
<value>Fit Method</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_FitMethod_Desc" xml:space="preserve">
|
||
<value>Circle fitting algorithm: LeastSquares or RANSAC (robust, rejects outliers)</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_RansacThreshold" xml:space="preserve">
|
||
<value>RANSAC Threshold</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_RansacThreshold_Desc" xml:space="preserve">
|
||
<value>RANSAC inlier distance threshold (pixels); points closer than this to the circle are inliers</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_Thickness" xml:space="preserve">
|
||
<value>Line Thickness</value>
|
||
</data>
|
||
<data name="EdgeCircleFitProcessor_Thickness_Desc" xml:space="preserve">
|
||
<value>Drawing thickness for result visualization</value>
|
||
</data>
|
||
</root> |