Code C# Chương trình xả lý ảnh chuyên nghiệp

Thứ tư , 15/03/2017, 04:23 GMT+7
     

Các bài trước chúng ta đã đi qua một số hướng dẫn code các bài tập về môn cơ sở lập trình

         + Code chương trình vẽ đồ thị hàm số bằng C#

         + Code mô phỏng quản lý hành lý ở sân bay

         + Code C# trò chơi chiếc hộp may mắn

Code C# Chương trình xả lý ảnh chuyên nghiệp

1. Giới thiệu

Giao diễn chương trình như sau

2.  Các class và hàm chính trong code

public class ConvMatrix
    {
        public int TopLeft = 0, TopMid = 0, TopRight = 0;
        public int MidLeft = 0, Pixel = 1, MidRight = 0;
        public int BottomLeft = 0, BottomMid = 0, BottomRight = 0;
        public int Factor = 1;
        public int Offset = 0;
        public void SetAll(int nVal)
        {
            TopLeft = TopMid = TopRight = MidLeft = Pixel = MidRight = BottomLeft = BottomMid = BottomRight = nVal;
        }
    }
public class ConvMatrix5
    {
        public int T1 = 0, T2 = 0, T3 = 0,T4=0,T5=0;
        public int TM1 = 0, TM2 = 0, TM3 = 0, TM4 = 0, TM5 = 0;
        public int M1 = 0, Pixel5 = 1, M5 = 0, M2 = 0, M4 = 0;
        public int BM1 = 0, BM2 = 0, BM3 = 0, BM4 = 0, BM5 = 0;
        public int B1 = 0, B2 = 0, B3 = 0, B4 = 0, B5 = 0;
 
        public int Factor5 = 1;
        public int Offset5 = 0;
        public void SetAll5(int nVal)
        {
           T1=T2=T3=T4=T5=TM1=TM2=TM3=TM4=TM5=M1=M2=M4=M5=BM1=BM2=BM3=BM4=BM5=B1=B2=B3=B4=B5 = nVal;
        }
    }
 Class xử lý ảnh gồm một số hàm chính sau
  //hàm chuyen sang ảnh nhị phân
        public Bitmap nhiphan(Bitmap bm)
        {
            Bitmap bitmap = new Bitmap(bm);
            Rectangle rec = new Rectangle(0, 0, bitmap.Width, bitmap.Height);
            System.Drawing.Imaging.BitmapData bmpData = bitmap.LockBits(rec, System.Drawing.Imaging.ImageLockMode.ReadWrite, bitmap.PixelFormat);
            IntPtr ptr = bmpData.Scan0;
            Int32 bytes = bmpData.Stride * bitmap.Height;
            Byte[] rgbValues = new Byte[bytes];
            System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes);
            Byte color;
            for (int counter = 0; counter < rgbValues.Length - 1; counter += 4)
            {
                color = rgbValues[counter];
                if (color < 128)
                {
                    rgbValues[counter + 0] = 0;
                    rgbValues[counter + 1] = 0;
                    rgbValues[counter + 2] = 0;
                }
                else
                {
                    rgbValues[counter + 0] = 255;
                    rgbValues[counter + 1] = 255;
                    rgbValues[counter + 2] = 255;
                }
            }
            System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes);
            bitmap.UnlockBits(bmpData);
            return bitmap;
        }
        //chỉnh độ gramma
        public void SetGamma(double red, double green, double blue)
        {
            Bitmap temp = (Bitmap)bitmaphienthoi;
            Bitmap bmap = (Bitmap)temp.Clone();
           // Color c;
            byte[] redGamma = CreateGammaArray(red);
            byte[] greenGamma = CreateGammaArray(green);
            byte[] blueGamma = CreateGammaArray(blue);
             BitmapData bmData = bmap.LockBits(new Rectangle(0, 0, bmap.Width, bmap.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
            int nOffset = bmData.Stride - 3 * bmap.Width;
            unsafe
            {
                byte* p = (byte*)bmData.Scan0;
                for (int i = 0; i < bmap.Width; i++)
                {
                    for (int j = 0; j < bmap.Height; j++)
                    {
                        int B = p[0];
                        int G = p[1];
                        int R = p[2];
                        p[2] = redGamma[R];
                        p[1] = greenGamma[G];
                        p[0] = blueGamma[B];
                       // c = bmap.GetPixel(i, j);
                       // bmap.SetPixel(i, j, Color.FromArgb(redGamma[c.R], greenGamma[c.G], blueGamma[c.B]));
                        p += 3;
                    }
                    p += nOffset;
                }
            }
            bmap.UnlockBits(bmData);
            bitmaphienthoi = (Bitmap)bmap.Clone();
 
        }

Keyword: code chuong trinh xu ly anh, code xử lý ảnh bằng c#, code c#, source code c#, đo an mon học,congnghegi

Dowload source: Code C# Chương trình xả lý ảnh chuyên nghiệp

Code một số chương trình cho các bộ môn trường UIT: http://congnghegi.com/source-code/

congnghegi.com
code chuong trinh xu ly anh code xử lý ảnh bằng c# code c# source code c# đo an mon họ