<?xml version="1.0" encoding="utf-8"?>
|
<!DOCTYPE IDCARD SYSTEM "IDCARD.dtd">
|
<!-- 用于分类22港澳通行证 29 台湾通行证 -->
|
<!-- CSC 22 港澳通行证 机读码 前3位 -->
|
<!-- CDL 29 香港通行证 机读码 前3位 -->
|
<IDCARD>
|
<CIDCardTemplate nMainDocumentID="30003" chDocumentName="MRZNum" engDocumentName="MRZNum" imageSizeType="2">
|
<vecProcessImage>
|
<CProcessImage processType="3">
|
<CEraseBlackBorderEx>
|
<!--processRect要检测黑边的区域-->
|
<RECT Left="0" Top="0" Right="10000" Bottom="10000"/>
|
<!--unProcessRect在要检测的区域里,能够确定的不需要检测黑边的部分,
|
也就是说这个区域肯定没有黑边存在,用来提高检测效率-->
|
<RECT Left="2000" Top="2000" Right="8900" Bottom="8000"/>
|
</CEraseBlackBorderEx>
|
</CProcessImage>
|
</vecProcessImage>
|
<vecRegion>
|
<!-- 头像 -->
|
<CRegion nIndex="0" nRegionType="0" nProcessOrder="0">
|
<!--处理该区域需要的图像信息的光的类型-->
|
<vecImageLightType>
|
<!--1:可见光图;2:红外光图;4:紫外光图 -->
|
<LIGHTTYPE>1</LIGHTTYPE>
|
<LIGHTTYPE>2</LIGHTTYPE>
|
</vecImageLightType>
|
<!--定义区域的定位信息,如果是头像区域还需要进一步精确定位,识别区域就不用了-->
|
<!--bAccurateLocate为1表示需要进一步精确定位,0代表不需要-->
|
<CLocateRegion bAccurateLocate="1">
|
<!--在定位前进行的预处理信息,一般是二值化-->
|
<vecProcessImage>
|
<CProcessImage processType="1">
|
<CTrueColorToGrayEx nFilter="0">
|
<RECT Top="0" Right="0" Bottom="0" Left="0"/>
|
</CTrueColorToGrayEx>
|
</CProcessImage>
|
</vecProcessImage>
|
<!--rcMinRect:指定定位区域的最小范围,即定位后的区域范围必须包含这个区域-->
|
<RECT Left="510" Top="2480" Right="2920" Bottom="7581"/>
|
<vecAnchorLocateInfo>
|
<!--nDisToAnchor的值也是整图的百分比*10000计算出来的-->
|
<CAnchorLocateInfo nAnchorIndex="0" nDisToAnchor="450" anchorType="1"/>
|
<CAnchorLocateInfo nAnchorIndex="0" nDisToAnchor="3500" anchorType="2"/>
|
<CAnchorLocateInfo nAnchorIndex="0" nDisToAnchor="2000" anchorType="3"/>
|
<CAnchorLocateInfo nAnchorIndex="0" nDisToAnchor="8000" anchorType="4"/>
|
</vecAnchorLocateInfo>
|
<!--该区域定义的区域类型基准点的信息-->
|
<vecCLocateAnchor>
|
<CLocateAnchor nDisToAnchor="0" nAnchorIndex="1" anchorType="2"/>
|
<CLocateAnchor nDisToAnchor="0" nAnchorIndex="2" anchorType="4"/>
|
</vecCLocateAnchor>
|
</CLocateRegion>
|
<!--区域内定位行的信息-->
|
</CRegion>
|
<!-- MRZ -->
|
<CRegion nIndex="1" nRegionType="4" nProcessOrder="1">
|
<!--处理该区域需要的图像信息的光的类型-->
|
<vecImageLightType>
|
<!--1:可见光图;2:红外光图;4:紫外光图 -->
|
<LIGHTTYPE>2</LIGHTTYPE>
|
<LIGHTTYPE>1</LIGHTTYPE>
|
</vecImageLightType>
|
<!--定义区域的定位信息,如果是头像区域还需要进一步精确定位,识别区域就不用了-->
|
<!--bAccurateLocate为1表示需要进一步精确定位,0代表不需要-->
|
<CLocateRegion bAccurateLocate="0">
|
<vecProcessImage/>
|
<!--rcMinRect:指定定位区域的最小范围,即定位后的区域范围必须包含这个区域-->
|
<RECT Left="560" Top="8424" Right="9640" Bottom="9204"/>
|
<vecAnchorLocateInfo>
|
<!--nDisToAnchor的值也是整图的百分比*10000计算出来的-->
|
<CAnchorLocateInfo nAnchorIndex="0" nDisToAnchor="150" anchorType="1"/>
|
<CAnchorLocateInfo nAnchorIndex="1" nDisToAnchor="-2620" anchorType="1"/>
|
<CAnchorLocateInfo nAnchorIndex="0" nDisToAnchor="9720" anchorType="2"/>
|
<CAnchorLocateInfo nAnchorIndex="0" nDisToAnchor="7500" anchorType="3"/>
|
<CAnchorLocateInfo nAnchorIndex="2" nDisToAnchor="374" anchorType="3"/>
|
<CAnchorLocateInfo nAnchorIndex="0" nDisToAnchor="9800" anchorType="4"/>
|
</vecAnchorLocateInfo>
|
<!--该区域定义的区域类型基准点的信息-->
|
<vecCLocateAnchor/>
|
</CLocateRegion>
|
<CLocateLine>
|
<!--rcHorizontal:进行行的左右边界定位时的区域范围,坐标单位为所在区域的百分比*100-->
|
<RECT Left="0" Top="0" Right="100" Bottom="100"/>
|
<!--rcVertical:进行行的上下边界定位时的区域范围,坐标单位为所在区域的百分比*100-->
|
<RECT Left="5" Top="0" Right="95" Bottom="100"/>
|
<!--nLocateMethod:0灰度变化的方式进行行定位;1投影方式进行行定位-->
|
<!--bHeight:是否等高-->
|
<!--bSpace:是否等间距-->
|
<!--bWidth:是否等宽-->
|
<!--nMinElementNum:该行最少元素数-->
|
<!--nMaxElementNum:该行最多元素数-->
|
<!--nMinWidth:元素的最小宽度-->
|
<!--nMaxWidth:元素的最大宽度-->
|
<!--nMinHeight:元素的最小高度-->
|
<!--nMaxHeight:元素的最大高度-->
|
<!--nMinSpace:元素间的最小间距-->
|
<!--nMaxSpace:元素间的最大间距-->
|
<CLocateInfo bEraseStart="0" nMinWHRatio="0" nMaxWHRatio="160" nSplitWHRatio="2000" bSplit="0" nNumType="0" bSpace="0" bWidth="0" bHeight="0" bRemoveLineNoise="0" nMinElementNum="1" nMaxElementNum="1" nMinWidth="7720" nMaxWidth="9990" nMinHeight="405" nMaxHeight="780" nMinSpace="140" nMaxSpace="730" bPostProcess="0">
|
<vecCLocateMethod>
|
<CLocateMethod nLocateMethod="1">
|
<vecProcessImage>
|
<CProcessImage processType="1">
|
<CTrueColorToGrayEx nFilter="-1">
|
<RECT Top="0" Right="0" Bottom="0" Left="0"/>
|
</CTrueColorToGrayEx>
|
</CProcessImage>
|
<CProcessImage processType="2">
|
<CGrayToBinaryEx>
|
<vecBinaryParam>
|
<BINARYPARAM nBlockNum="2" nMethod="7"/>
|
<BINARYPARAM nBlockNum="1" nMethod="3"/>
|
</vecBinaryParam>
|
<!--processRect-->
|
<RECT Left="0" Top="0" Right="0" Bottom="0"/>
|
</CGrayToBinaryEx>
|
</CProcessImage>
|
</vecProcessImage>
|
</CLocateMethod>
|
<CLocateMethod nLocateMethod="1">
|
<vecProcessImage>
|
<CProcessImage processType="1">
|
<CTrueColorToGrayEx nFilter="0">
|
<RECT Top="0" Right="0" Bottom="0" Left="0"/>
|
</CTrueColorToGrayEx>
|
</CProcessImage>
|
<CProcessImage processType="2">
|
<CGrayToBinaryEx>
|
<vecBinaryParam>
|
<BINARYPARAM nBlockNum="1" nMethod="6"/>
|
</vecBinaryParam>
|
<!--processRect-->
|
<RECT Left="0" Top="0" Right="0" Bottom="0"/>
|
</CGrayToBinaryEx>
|
</CProcessImage>
|
</vecProcessImage>
|
</CLocateMethod>
|
</vecCLocateMethod>
|
<!--在定位前进行的预处理信息,一般是二值化-->
|
</CLocateInfo>
|
<!--采用定位算法对行定位后,边界要浮动的大小,可以为负数
|
也是整图的百分比*10000计算出来的-->
|
<positionPlus nLeftPlus="-100" nRightPlus="100" nTopPlus="-120" nBottomPlus="100"/>
|
</CLocateLine>
|
<vecLine>
|
<!--nIndex:该行在区域内是第几行,以第一行或者最后一行为基准从0开始的偏移-->
|
<!--bStartOffset:如果是以区域的第一行为基准,该值为true,否则为false-->
|
<!--bEndOffset:如果是以区域的最后一行为基准,该值为false,否则为false-->
|
<!--nLineType:0代表不需要识别,1代表需要识别-->
|
<CLine nIndex="0" bStartOffset="0" bEndOffset="1" bExist="1" bNeedRecog="1" nCheckKeyWord="0">
|
<!--rcLineResult:行的初始位置信息,初始值尽量写最小的区域范围,这样最准确
|
如果都为0代表该值不可靠,坐标单位为坐标均为占整张图像的百分比*10000
|
-->
|
<RECT Left="0" Top="0" Right="0" Bottom="0"/>
|
<vecRecogInfo>
|
<CRecogInfo bIgnorePoint="0" nMaxPointWidth="0" nMaxPointHeight="0" bMatchRegExp="0" charOrder="" bConfirmParams="0" nProcessOrder="0" nKernelType="0">
|
<!--定位字符的信息-->
|
<!--定位字符的信息-->
|
<!--nLocateMethod: 0,用识别核心做定位;
|
1,提取连通域的方法进行定位;
|
2,投影方法进行定位
|
-->
|
<!--nMinElementNum:该行最少元素数-->
|
<!--nMaxElementNum:该行最多元素数-->
|
<!--nMinWidth:元素的最小宽度-->
|
<!--nMaxWidth:元素的最大宽度-->
|
<!--nMinHeight:元素的最小高度-->
|
<!--nMaxHeight:元素的最大高度-->
|
<!--nMinSpace:元素间的最小间距-->
|
<!--nMaxSpace:元素间的最大间距-->
|
<CLocateInfo bEraseStart="0" nMinWHRatio="0" nMaxWHRatio="130" nSplitWHRatio="2000" bSplit="0" nNumType="0" bSpace="0" bWidth="0" bHeight="0" bRemoveLineNoise="0" nMinElementNum="30" nMaxElementNum="30" nMinWidth="120" nMaxWidth="360" nMinHeight="405" nMaxHeight="750" nMinSpace="0" nMaxSpace="160" bPostProcess="1">
|
<vecCLocateMethod>
|
<CLocateMethod nLocateMethod="1">
|
<vecProcessImage>
|
<CProcessImage processType="1">
|
<CTrueColorToGrayEx nFilter="-1">
|
<RECT Top="0" Right="0" Bottom="0" Left="0"/>
|
</CTrueColorToGrayEx>
|
</CProcessImage>
|
<!--新版电子版纹理严重,做一个均值滤波-->
|
<CProcessImage processType="6">
|
<CBlurAverage nType="2"/>
|
</CProcessImage>
|
<CProcessImage processType="2">
|
<CGrayToBinaryEx>
|
<vecBinaryParam>
|
<BINARYPARAM nBlockNum="10" nMethod="7"/>
|
<BINARYPARAM nBlockNum="1" nMethod="6"/>
|
</vecBinaryParam>
|
<!--processRect-->
|
<RECT Left="0" Top="0" Right="0" Bottom="0"/>
|
</CGrayToBinaryEx>
|
</CProcessImage>
|
</vecProcessImage>
|
</CLocateMethod>
|
<CLocateMethod nLocateMethod="1">
|
<vecProcessImage>
|
<CProcessImage processType="1">
|
<CTrueColorToGrayEx nFilter="0">
|
<RECT Top="0" Right="0" Bottom="0" Left="0"/>
|
</CTrueColorToGrayEx>
|
</CProcessImage>
|
<CProcessImage processType="6">
|
<CBlurAverage nType="2"/>
|
</CProcessImage>
|
<CProcessImage processType="2">
|
<CGrayToBinaryEx>
|
<vecBinaryParam>
|
<BINARYPARAM nBlockNum="10" nMethod="7"/>
|
<BINARYPARAM nBlockNum="1" nMethod="1"/>
|
</vecBinaryParam>
|
<!--processRect-->
|
<RECT Left="0" Top="0" Right="0" Bottom="0"/>
|
</CGrayToBinaryEx>
|
</CProcessImage>
|
</vecProcessImage>
|
</CLocateMethod>
|
<CLocateMethod nLocateMethod="1">
|
<vecProcessImage>
|
<CProcessImage processType="1">
|
<CTrueColorToGrayEx nFilter="0">
|
<RECT Top="0" Right="0" Bottom="0" Left="0"/>
|
</CTrueColorToGrayEx>
|
</CProcessImage>
|
<CProcessImage processType="6">
|
<CBlurAverage nType="2"/>
|
</CProcessImage>
|
<CProcessImage processType="2">
|
<CGrayToBinaryEx>
|
<vecBinaryParam>
|
<!-- <BINARYPARAM nBlockNum="2" nMethod="7"/>-->
|
<BINARYPARAM nBlockNum="1" nMethod="3"/>
|
</vecBinaryParam>
|
<!--processRect-->
|
<RECT Left="0" Top="0" Right="0" Bottom="0"/>
|
</CGrayToBinaryEx>
|
</CProcessImage>
|
</vecProcessImage>
|
</CLocateMethod>
|
<CLocateMethod nLocateMethod="1">
|
<vecProcessImage>
|
<CProcessImage processType="1">
|
<CTrueColorToGrayEx nFilter="0">
|
<RECT Top="0" Right="0" Bottom="0" Left="0"/>
|
</CTrueColorToGrayEx>
|
</CProcessImage>
|
<CProcessImage processType="6">
|
<CBlurAverage nType="2"/>
|
</CProcessImage>
|
<CProcessImage processType="2">
|
<CGrayToBinaryEx>
|
<vecBinaryParam>
|
<BINARYPARAM nBlockNum="1" nMethod="5"/>
|
</vecBinaryParam>
|
<!--processRect-->
|
<RECT Left="0" Top="0" Right="0" Bottom="0"/>
|
</CGrayToBinaryEx>
|
</CProcessImage>
|
</vecProcessImage>
|
</CLocateMethod>
|
<CLocateMethod nLocateMethod="1">
|
<vecProcessImage>
|
<CProcessImage processType="1">
|
<CTrueColorToGrayEx nFilter="0">
|
<RECT Top="0" Right="0" Bottom="0" Left="0"/>
|
</CTrueColorToGrayEx>
|
</CProcessImage>
|
<CProcessImage processType="6">
|
<CBlurAverage nType="2"/>
|
</CProcessImage>
|
<CProcessImage processType="2">
|
<CGrayToBinaryEx>
|
<vecBinaryParam>
|
<BINARYPARAM nBlockNum="1" nMethod="6"/>
|
</vecBinaryParam>
|
<!--processRect-->
|
<RECT Left="0" Top="0" Right="0" Bottom="0"/>
|
</CGrayToBinaryEx>
|
</CProcessImage>
|
</vecProcessImage>
|
</CLocateMethod>
|
</vecCLocateMethod>
|
</CLocateInfo>
|
<vecKernal>
|
<!--nRecogType:0识别区域,1识别字符-->
|
<!--nRecogImgeType:进行识别时需要的图像类型,0代表灰度,1代表二值-->
|
<CKernalInfo kernalMainType="1" nKernalSubType="6" nFilterType="0" nFillingMethod="1" strFilterPlus="" nRecogType="1" nRecogImgeType="0">
|
<vecCharRatio>
|
<CCharRatio strChars="" charType="0" nWHRatio="60"/>
|
</vecCharRatio>
|
</CKernalInfo>
|
</vecKernal>
|
</CRecogInfo>
|
</vecRecogInfo>
|
<!--nRecogType:0识别区域,1识别字符-->
|
<!--nRecogImgeType:进行识别时需要的图像类型,0代表灰度,1代表二值-->
|
<!--cellRecogType:识别内容
|
NAMECH=0,//中文姓名
|
SEX=1,//性别
|
NATION=2,//民族
|
BIRTHDAY=3,//出生日期
|
ISSUINGDATE=4,//签发日期
|
VALIDPERIOD=5,//有效期至
|
ADDRESSS=6,//地址
|
IDNUMBER=7,//身份证号码
|
PPMRZ1=8,//护照类型证件的机读码第一行
|
PPMRZ2=9,//护照类型证件的机读码第二行
|
OTHER=10//其他类型
|
-->
|
<!--charOrder:字符的排列情况,用正则表达式表示-->
|
<!--kernalMainType识别核心主类型
|
TH_OCR=1,
|
SSFT152=2,
|
BARCODE=3
|
-->
|
<!--vecRecogUnit:行内识别单元的信息-->
|
<vecRecogUnit>
|
<!--nIndex:识别单元序号-->
|
<!--cellNameEng="" cellName:识别单元名称-->
|
<!--bLocate:该识别单元是否需要定位-->
|
<!--bReRecog:该识别单元是否需要重新识别-->
|
<!--nOutputThreshold:输出界限一,待输出的识别结果的字频的值不能低于该值-->
|
<!--输出界限二,字频值< nOutputThreshold的个数最大不能超过该值,否则将不输出-->
|
<CRecogUnit nIndex="0" bLocate="0" bRecog="0">
|
<vecRecogInfo/>
|
</CRecogUnit>
|
</vecRecogUnit>
|
<!--vecLineKeyWord:记录该行内用来定位的关键字信息-->
|
<vecLineKeyWord/>
|
<!--记录该行定义基准点的信息-->
|
<vecCLocateAnchor/>
|
</CLine>
|
</vecLine>
|
</CRegion>
|
</vecRegion>
|
<vecAnchor>
|
<!--0基准点-->
|
<CAnchor nIndex="0" anchorType="0" anchorPos="0" bEnable="0" nMinPos="-1" nMaxPos="-1"/>
|
<!--头像区域定义右基准-->
|
<CAnchor nIndex="1" anchorPos="-1" anchorType="2" bEnable="0" nMinPos="-1" nMaxPos="-1"/>
|
<!--头像区域定义下基准-->
|
<CAnchor nIndex="2" anchorPos="-1" anchorType="4" bEnable="0" nMinPos="-1" nMaxPos="-1"/>
|
</vecAnchor>
|
<vecOutPutResult>
|
<COutPutResult nIndex="0" cellRecogType="20" cellNameEng="MRZ" cellName="MRZ" nOutputThreshold="0" nOutputNumber="0" bFormatResult="0"/>
|
</vecOutPutResult>
|
</CIDCardTemplate>
|
</IDCARD>
|