OpenCV+Python实现模拟仪表读数自动识别系统实战
2026/10/11 14:10:45
import _ from 'lodash' export const initColumns = [ { name: 'address', label: '地址', align: 'left', field: 'address' }, { name: 'name', label: '名称', align: 'left', field: 'name' }, { name: 'value', label: '值', align: 'left', field: 'value' }, { name: 'unit', label: '单位', align: 'left', field: 'unit' } ] export const frequencyOptions = [ { label: '全部推送', value: 0 }, { label: '1分钟/次', value: 60 }, { label: '3分钟/次', value: 3 * 60 }, { label: '5分钟/次', value: 5 * 60 }, { label: '10分钟/次', value: 10 * 60 }, { label: '30分钟/次', value: 30 * 60 } ] export const srcMap = { GreaterThan: 'largeThen', GreaterEqual: 'largeEqual', LessThan: 'lessThen', LessEqual: 'lessEqual', Equal: 'equal', Open: 'within', RightOpen: 'withinA', LeftOpen: 'withinB', Closed: 'withinAB', OutOpen: 'outside', OutLeftOpen: 'outsideB', OutRightOpen: 'outsideA', OutClosed: 'outsideAB' } export const conditionOptions = [ { label: '大于', value: 'GreaterThan' }, // b { label: '大于等于', value: 'GreaterEqual' }, // b { label: '小于', value: 'LessThan' }, // a { label: '小于等于', value: 'LessEqual' }, // a { label: '等于', value: 'Equal' }, // a { label: '区间内(A<X<B)', value: 'Open', left: '<', right: '<' }, { label: '区间内(A≤X<B)', value: 'RightOpen', left: '≤', right: '<' }, { label: '区间内(A<X≤B)', value: 'LeftOpen', left: '<', right: '≤' }, { label: '区间内(A≤X≤B)', value: 'Closed', left: '≤', right: '≤' }, { label: '区间外(X<A或X>B)', value: 'OutOpen', left: '<', right: '>' }, { label: '区间外(X<A或X≥B)', value: 'OutLeftOpen', left: '<', right: '≥' }, { label: '区间外(X≤A或X>B)', value: 'OutRightOpen', left: '≤', right: '>' }, { label: '区间外(X≤A或X≥B)', value: 'OutClosed', left: '≤', right: '≥' } ] export const conditionAMaps = [ 'LessThan', 'LessEqual', 'Equal', 'Open', 'RightOpen', 'LeftOpen', 'Closed', 'OutOpen', 'OutLeftOpen', 'OutRightOpen', 'OutClosed' ] export const conditionBMaps = [ 'GreaterThan', 'GreaterEqual', 'Open', 'RightOpen', 'LeftOpen', 'Closed', 'OutOpen', 'OutLeftOpen', 'OutRightOpen', 'OutClosed' ] const outUnitList = [ 'OutOpen', 'OutLeftOpen', 'OutRightOpen', 'OutClosed'] export const setConditionLabel = data => { const noUnitlist = [ 'LessThan', 'LessEqual', 'Equal', 'GreaterThan', 'GreaterEqual' ] const dlpOperatorItem = _.find( conditionOptions, v => v.value === data.dlpOperator ) if (noUnitlist.includes(data.dlpOperator)) { return conditionAMaps.includes(data.dlpOperator) ? `${dlpOperatorItem.label}${data.leftValue}` : `${dlpOperatorItem.label}${data.rightValue}` } else if (outUnitList.includes(data.dlpOperator)) { return `${data.repName}${dlpOperatorItem.left}${data.leftValue}或${data.repName}${ dlpOperatorItem.right }${data.rightValue}` } else { return `${data.leftValue}${dlpOperatorItem.left}${data.repName}${ dlpOperatorItem.right }${data.rightValue}` } }