• 大小: 43KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: C#
  • 标签: 二值化  c#  

资源简介

学习文字识别,看到了图片的二值化,出于钻研态度自己试了试图片二值化,用到了灰度阈值矩阵,没看过别人的,不过估计应该是有人研究过的,代码C#写的。

资源截图

代码片段和文件信息

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;

namespace BinaryzationTest
{
    public partial class Form1 : Form
    {
        string SourceFile;
        //灰度矩阵灵敏度,越高效果越好,但越耗时
        int Sensibility = 1;

        public Form1()
        {
            InitializeComponent();
        }




        private void SelectBtn_Click(object sender EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                SourceFile = openFileDialog1.FileName;
                ImgPath.Text = SourceFile;
                SourceImg.BackgroundImage = new Bitmap(SourceFile);
                BinaryzatedImg.BackgroundImage = Img2Gray(new Bitmap(SourceFile));
            }
        }

        //图片灰度化,速度快
        public static unsafe Bitmap Img2Gray(Bitmap curBitmap)
        {
            int width = curBitmap.Width;
            int height = curBitmap.Height;
            Bitmap back = new Bitmap(width height);
            byte temp;
            Rectangle rect = new Rectangle(0 0 curBitmap.Width curBitmap.Height);
            //这种速度最快
            BitmapData bmpData = curBitmap.LockBits(rect ImageLockMode.ReadWrite PixelFormat.Format24bppRgb);//24位rgb显示一个像素,即一个像素点3个字节,每个字节是BGR分量。Format32bppRgb是用4个字节表示一个像素
            byte* ptr = (byte*)(bmpData.Scan0);
            for (int j = 0; j < height; j++)
            {
                for (int i = 0; i < width; i++)
                {
                    //ptr[2]为r值,ptr[1]为g值,ptr[0]为b值
                    temp = (byte)(0.299 * ptr[2] + 0.587 * ptr[1] + 0.114 * ptr[0]);
                    back.SetPixel(i j Color.FromArgb(temp temp temp));
                    ptr += 3; //Format24bppRgb格式每个像素占3字节
                }
                ptr += bmpData.Stride - bmpData.Width * 3;//每行读取到最后“有用”数据时,跳过未使用空间XX
            }
            curBitmap.UnlockBits(bmpData);
            return back;
        }

        //图片灰度化速度慢
        public static Bitmap Img2Gray2(Bitmap curBitmap)
        {
            int width = curBitmap.Width;
            int height = curBitmap.Height;
            Bitmap back = new Bitmap(width height);
            int GrayScale = 0;
            for (int i = 0; i < width; i++)
            {
                for (int j = 0; j < height; j++)
                {
                    //ptr[2]为r值,ptr[1]为g值,ptr[0]为b值
                    GrayScale = curBitmap.GetPixel(i j).R * 299 / 1000 + curBitmap.GetPixel(i j).G * 587 / 1000 + curBitmap.GetPixel(i j).B * 114 / 1000;
                    back.SetPixel(i j Color.FromArgb(GrayScale GrayScale GrayScale));
                }
            }
            return back;
        }

        //计算图片像素点归属灰度矩阵位置
        public int GetIndex(int location int length)
        {
            return location * Sensibility / length;
        }

        public Bitmap Gray2Binaryzation(Bitmap GrayImg)
        {
            

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.     46592  2018-09-18 19:46  BinaryzationTest\.vs\BinaryzationTest\v15\.suo

     文件      13824  2018-09-18 17:45  BinaryzationTest\BinaryzationTest\bin\Debug\BinaryzationTest.exe

     文件      26112  2018-09-18 17:45  BinaryzationTest\BinaryzationTest\bin\Debug\BinaryzationTest.pdb

     文件       3444  2018-09-18 17:31  BinaryzationTest\BinaryzationTest\BinaryzationTest.csproj

     文件       5664  2018-09-18 19:46  BinaryzationTest\BinaryzationTest\Form1.cs

     文件      12271  2018-09-18 17:43  BinaryzationTest\BinaryzationTest\Form1.Designer.cs

     文件       6020  2018-09-18 17:43  BinaryzationTest\BinaryzationTest\Form1.resx

     文件       1082  2018-09-18 16:33  BinaryzationTest\BinaryzationTest\obj\Debug\BinaryzationTest.csproj.FileListAbsolute.txt

     文件       1012  2018-09-18 17:43  BinaryzationTest\BinaryzationTest\obj\Debug\BinaryzationTest.csproj.GenerateResource.Cache

     文件       2210  2018-09-18 15:28  BinaryzationTest\BinaryzationTest\obj\Debug\BinaryzationTest.csprojResolveAssemblyReference.cache

     文件      13824  2018-09-18 17:45  BinaryzationTest\BinaryzationTest\obj\Debug\BinaryzationTest.exe

     文件        180  2018-09-18 17:43  BinaryzationTest\BinaryzationTest\obj\Debug\BinaryzationTest.Form1.resources

     文件      26112  2018-09-18 17:45  BinaryzationTest\BinaryzationTest\obj\Debug\BinaryzationTest.pdb

     文件        180  2018-09-18 17:31  BinaryzationTest\BinaryzationTest\obj\Debug\BinaryzationTest.Properties.Resources.resources

     文件         42  2018-09-18 15:22  BinaryzationTest\BinaryzationTest\obj\Debug\CoreCompileInputs.cache

     文件        864  2018-09-18 15:22  BinaryzationTest\BinaryzationTest\obj\Debug\DesignTimeResolveAssemblyReferences.cache

     文件       7005  2018-09-18 17:31  BinaryzationTest\BinaryzationTest\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件        497  2018-09-18 15:22  BinaryzationTest\BinaryzationTest\Program.cs

     文件       1330  2018-09-18 15:22  BinaryzationTest\BinaryzationTest\Properties\AssemblyInfo.cs

     文件       2845  2018-09-18 15:22  BinaryzationTest\BinaryzationTest\Properties\Resources.Designer.cs

     文件       5612  2018-09-18 15:22  BinaryzationTest\BinaryzationTest\Properties\Resources.resx

     文件       1103  2018-09-18 15:22  BinaryzationTest\BinaryzationTest\Properties\Settings.Designer.cs

     文件        249  2018-09-18 15:22  BinaryzationTest\BinaryzationTest\Properties\Settings.settings

     文件       1015  2018-09-18 15:22  BinaryzationTest\BinaryzationTest.sln

     目录          0  2018-09-18 15:22  BinaryzationTest\BinaryzationTest\obj\Debug\TempPE

     目录          0  2018-09-18 15:22  BinaryzationTest\.vs\BinaryzationTest\v15

     目录          0  2018-09-18 15:28  BinaryzationTest\BinaryzationTest\bin\Debug

     目录          0  2018-09-18 17:43  BinaryzationTest\BinaryzationTest\obj\Debug

     目录          0  2018-09-18 15:22  BinaryzationTest\.vs\BinaryzationTest

     目录          0  2018-09-18 15:22  BinaryzationTest\BinaryzationTest\bin

............此处省略8个文件信息

评论

共有 条评论