C# 클래스 CaptchaRecogition.ImageProcess

파일 보기 프로젝트 열기: ccccccmd/ReCapcha 1 사용 예제들

공개 메소드들

메소드 설명
Array2String ( int array, bool flag ) : string
Binary ( Bitmap img ) : Bitmap

二值化处理

CalcRate ( string t1, string t2 ) : int

计算相似度

ComputeThresholdValue ( Bitmap img ) : int
ConvertImgToArrayX ( Image img ) : ].int[
ConvertImgToArrayY ( Image img ) : ].int[
CutImage ( int RowNum, int ColNum, Bitmap bm ) : System.Drawing.Bitmap[]

图片切割

CutImage ( Image img, int ww, int hh, bool is4Chars = true, int charWidth = 10 ) : List

字符数目是四个,有切割后不是4个的话会做进一步处理

GetArrayX ( int input, int y ) : int[]
GetArrayY ( int input, int x ) : int[]
GetBinaryCode ( Bitmap img ) : string

获取图片特征码

GetDgGrayValue ( Image img ) : int

得到灰度图像前景背景的临界值 最大类间方差法

GetImgBoundaryList ( Image img, Bitmap &_bmp, bool is4Chars, int charWidth = 10 ) : List

确定是四字符会有精细处理

GetPicValidByValue ( Bitmap singlepic, int dgGrayValue ) : Bitmap

对切割后小图操作

GetPicValidByValue ( int dgGrayValue, Bitmap bm ) : Bitmap

获取有效区域

GetStartBoundaryY ( Image img, int start ) : int

Y轴开始的边界

GetXBeyond ( int input ) : Point
GetYBeyond ( int input ) : Point
GetYZMCode ( Image img, string zimoPath, int charNum ) : string

验证码识别

GetYZMCode ( Image img, string zimoPath, int maxNearPoints, int smallPicWidth, int smallPicHeight, int type = 2, bool is4Chars = true, int charWidth = 10 ) : string

识别验证码(图片-->字符)

Gray ( Bitmap img, int type = 2 ) : Image

图片灰度化处理指针法

Normalized ( Bitmap bitmap, int ww, int hh ) : Bitmap

把图片的宽高统一,归一

PBinary ( Bitmap src, int v ) : Bitmap

二值化处理

PreProcess ( Image img, int maxNearPoints, int smallPicWidth, int smallPicHeight, int type = 2, bool is4Chars = true, int charWidth = 10 ) : List

验证码的前期处理

RemoveBg ( Bitmap img, int dgGrayValue ) : Image

去除背景

RemoveNoise ( Bitmap img, int maxAroundPoints = 1 ) : Image

去除噪点

TrimBmp ( Image img ) : Bitmap
WriteZimo ( Bitmap smallPic, string zimoPath, string YZMCode ) : void

字模库维护

비공개 메소드들

메소드 설명
GetEndBoundaryX ( Image img, int startX, int startY, int endY ) : int

获得X轴结束边界

GetEndBoundaryY ( Image img, int start ) : int

Y轴结束的边界

GetGrayValueByMax ( int r, int g, int b ) : int
GetGrayValueByPingjunzhi ( int r, int g, int b ) : int
GetGrayValueByQuanzhong ( int b, int g, int r ) : int
GetStartBoundaryX ( Image img, int startY, int endY ) : int

X轴开始的边界

NotFourChars ( Image img, Bitmap &_bmp, List list, int charWidth ) : List

对第一次切割后不是4张小图的做处理

메소드 상세

Array2String() 공개 정적인 메소드

public static Array2String ( int array, bool flag ) : string
array int
flag bool
리턴 string

Binary() 공개 정적인 메소드

二值化处理
public static Binary ( Bitmap img ) : Bitmap
img System.Drawing.Bitmap
리턴 System.Drawing.Bitmap

CalcRate() 공개 정적인 메소드

计算相似度
public static CalcRate ( string t1, string t2 ) : int
t1 string
t2 string
리턴 int

ComputeThresholdValue() 공개 정적인 메소드

public static ComputeThresholdValue ( Bitmap img ) : int
img System.Drawing.Bitmap
리턴 int

ConvertImgToArrayX() 공개 정적인 메소드

public static ConvertImgToArrayX ( Image img ) : ].int[
img Image
리턴 ].int[

ConvertImgToArrayY() 공개 정적인 메소드

public static ConvertImgToArrayY ( Image img ) : ].int[
img Image
리턴 ].int[

CutImage() 공개 정적인 메소드

图片切割
public static CutImage ( int RowNum, int ColNum, Bitmap bm ) : System.Drawing.Bitmap[]
RowNum int
ColNum int
bm System.Drawing.Bitmap
리턴 System.Drawing.Bitmap[]

CutImage() 공개 정적인 메소드

字符数目是四个,有切割后不是4个的话会做进一步处理
public static CutImage ( Image img, int ww, int hh, bool is4Chars = true, int charWidth = 10 ) : List
img Image
ww int
hh int
is4Chars bool 是否是4个字
charWidth int
리턴 List

GetArrayX() 공개 정적인 메소드

public static GetArrayX ( int input, int y ) : int[]
input int
y int
리턴 int[]

GetArrayY() 공개 정적인 메소드

public static GetArrayY ( int input, int x ) : int[]
input int
x int
리턴 int[]

GetBinaryCode() 공개 정적인 메소드

获取图片特征码
public static GetBinaryCode ( Bitmap img ) : string
img System.Drawing.Bitmap
리턴 string

GetDgGrayValue() 공개 정적인 메소드

得到灰度图像前景背景的临界值 最大类间方差法
public static GetDgGrayValue ( Image img ) : int
img Image 灰度图像
리턴 int

GetImgBoundaryList() 공개 정적인 메소드

确定是四字符会有精细处理
public static GetImgBoundaryList ( Image img, Bitmap &_bmp, bool is4Chars, int charWidth = 10 ) : List
img Image
_bmp System.Drawing.Bitmap
is4Chars bool
charWidth int
리턴 List

GetPicValidByValue() 공개 정적인 메소드

对切割后小图操作
public static GetPicValidByValue ( Bitmap singlepic, int dgGrayValue ) : Bitmap
singlepic System.Drawing.Bitmap
dgGrayValue int
리턴 System.Drawing.Bitmap

GetPicValidByValue() 공개 정적인 메소드

获取有效区域
public static GetPicValidByValue ( int dgGrayValue, Bitmap bm ) : Bitmap
dgGrayValue int 灰度值
bm System.Drawing.Bitmap 图片对象
리턴 System.Drawing.Bitmap

GetStartBoundaryY() 공개 정적인 메소드

Y轴开始的边界
public static GetStartBoundaryY ( Image img, int start ) : int
img Image
start int
리턴 int

GetXBeyond() 공개 정적인 메소드

public static GetXBeyond ( int input ) : Point
input int
리턴 Point

GetYBeyond() 공개 정적인 메소드

public static GetYBeyond ( int input ) : Point
input int
리턴 Point

GetYZMCode() 공개 정적인 메소드

验证码识别
public static GetYZMCode ( Image img, string zimoPath, int charNum ) : string
img Image 验证码
zimoPath string 字模位置
charNum int 验证码字符个数
리턴 string

GetYZMCode() 공개 정적인 메소드

识别验证码(图片-->字符)
public static GetYZMCode ( Image img, string zimoPath, int maxNearPoints, int smallPicWidth, int smallPicHeight, int type = 2, bool is4Chars = true, int charWidth = 10 ) : string
img Image 验证码图片
zimoPath string 字模数据库
maxNearPoints int 噪点最大粘连数目
smallPicWidth int 切分小图宽度
smallPicHeight int 切分小图高度
type int
is4Chars bool
charWidth int
리턴 string

Gray() 공개 정적인 메소드

图片灰度化处理指针法
public static Gray ( Bitmap img, int type = 2 ) : Image
img System.Drawing.Bitmap 待处理图片
type int 1:最大值;2:平均值;3:加权平均;默认平均值
리턴 Image

Normalized() 공개 정적인 메소드

把图片的宽高统一,归一
public static Normalized ( Bitmap bitmap, int ww, int hh ) : Bitmap
bitmap System.Drawing.Bitmap 需要处理的图片
ww int
hh int
리턴 System.Drawing.Bitmap

PBinary() 공개 정적인 메소드

二值化处理
public static PBinary ( Bitmap src, int v ) : Bitmap
src System.Drawing.Bitmap
v int 二值化阈值
리턴 System.Drawing.Bitmap

PreProcess() 공개 정적인 메소드

验证码的前期处理
public static PreProcess ( Image img, int maxNearPoints, int smallPicWidth, int smallPicHeight, int type = 2, bool is4Chars = true, int charWidth = 10 ) : List
img Image 验证码图片
maxNearPoints int 噪点最大粘连数目
smallPicWidth int 切分小图宽度
smallPicHeight int 切分小图高度
type int 灰度处理方式1:最大值2:平均值3:加权平均
is4Chars bool
charWidth int
리턴 List

RemoveBg() 공개 정적인 메소드

去除背景
public static RemoveBg ( Bitmap img, int dgGrayValue ) : Image
img System.Drawing.Bitmap 原图片
dgGrayValue int 前景背景分界灰度值
리턴 Image

RemoveNoise() 공개 정적인 메소드

去除噪点
public static RemoveNoise ( Bitmap img, int maxAroundPoints = 1 ) : Image
img System.Drawing.Bitmap 图片
maxAroundPoints int 噪点的最大粘连数
리턴 Image

TrimBmp() 공개 정적인 메소드

public static TrimBmp ( Image img ) : Bitmap
img Image
리턴 System.Drawing.Bitmap

WriteZimo() 공개 정적인 메소드

字模库维护
public static WriteZimo ( Bitmap smallPic, string zimoPath, string YZMCode ) : void
smallPic System.Drawing.Bitmap 小图片
zimoPath string 字模路径
YZMCode string 验证码字符
리턴 void