public static EditImageSet GetEditImageSet() { if (_eis == null) { _eis = new EditImageSet(); } return(_eis); }
private void linkEditImageSet_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (this.pictureBox1.Image == null) { return; } EditImageSet eis = EditImageSet.GetEditImageSet(); eis.ShowDialog(); }
private void linkAdvnSet_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { EditImageSet eis = EditImageSet.GetEditImageSet(); eis.ShowDialog(); }
/// <summary> /// 图像处理 /// </summary> /// <param name="_bit"></param> /// <returns></returns> public static Bitmap ImageProcessing(Image _bit) { bool IsContrastRatio = EditImageSet.GetEditImageSet().IsContrastRatio; //开启对比度调整 int ContrastRatioValue = EditImageSet.GetEditImageSet().ContrastRatioValue; bool IsBackgroundColorReplace = EditImageSet.GetEditImageSet().IsBackgroundColorReplace; //关闭背景色替换 Color ReplaceBackgroundColor = EditImageSet.GetEditImageSet().ReplaceBackgroundColor; int BackgroundReplaceTolerance = EditImageSet.GetEditImageSet().BackgroundReplaceTolerance; bool IsGrayByPixels = EditImageSet.GetEditImageSet().IsGrayByPixels; //开启灰度处理 bool IsThresholding = EditImageSet.GetEditImageSet().IsThresholding; bool IsClearNoise = EditImageSet.GetEditImageSet().IsClearNoise; //降噪 int GrayBackgroundLimit = EditImageSet.GetEditImageSet().GrayBackgroundLimit; int NoiseMaxNearPoints = EditImageSet.GetEditImageSet().NoiseMaxNearPoints; bool IsAutoImageSize = EditImageSet.GetEditImageSet().IsAutoImageSize;//自动裁剪图像 int AutoImageHeight = EditImageSet.GetEditImageSet().AutoImageHeight; bool IsStartHoughtLine = EditImageSet.GetEditImageSet().IsHouhtLine; int HoughtHeight = EditImageSet.GetEditImageSet().HouhtLineHeight; try { _ocrImage = new Bitmap(_bit); //图像处理 ImageCodeHandle imgHandle = new ImageCodeHandle(_ocrImage); //调整对比度 截图过程中处理 if (IsContrastRatio)//是否进行对比度调整 { _ocrImage = imgHandle.img_color_contrast(ContrastRatioValue); } //替换背景色 if (IsBackgroundColorReplace) { //取背景色 Color BackgroundColor = _ocrImage.GetPixel(1, 1); _ocrImage = imgHandle.ReplaceColor(BackgroundColor, ReplaceBackgroundColor, BackgroundReplaceTolerance); } if (IsStartHoughtLine) { _ocrImage = ImageCodeHandle.hough_line(_ocrImage, HoughtHeight); } if (IsGrayByPixels) { //_ocrImage = imgHandle.GrayByPixels();//灰度 _ocrImage = imgHandle.ToGrey();//灰度 if (IsThresholding) { _ocrImage = imgHandle.Thresholding(); //二值化 if (IsAutoImageSize) //自动裁剪图像 { _ocrImage = ImageCodeHandle.TailorImage(_ocrImage); //裁剪图像大小 if (_ocrImage.Height < AutoImageHeight) { float fTemp = ((float)AutoImageHeight) / ((float)_ocrImage.Height);//缩放因子 int iw = (int)Math.Round(_ocrImage.Width * fTemp, 0); int ih = (int)Math.Round(_ocrImage.Height * fTemp, 0); _ocrImage = ImageCodeHandle.KiResizeImage(_ocrImage, iw, ih);//缩放 imgHandle = new ImageCodeHandle(_ocrImage); _ocrImage = imgHandle.Thresholding();//二值化 } } } if (IsClearNoise)//黑白降噪 { _ocrImage = imgHandle.ClearNoise(GrayBackgroundLimit, NoiseMaxNearPoints); } } return(_ocrImage); } catch (Exception ex) { MessageBox.Show(string.Format("图像处理异常,异常信息:{0}", ex.Message), "异常"); return(null); } }