Ejemplo n.º 1
0
 public matrannhiphan tachbien()
 {
     matrannhiphan ketqua = new matrannhiphan(sohang, socot, false);
     int i, j;
     for (i = 0; i < this.sohang; ++i)
         for (j = 0; j < this.socot; ++j)
         {
             if (diembien(i, j)) ketqua.data[i, j] = true;
         }
     return ketqua;
 }
Ejemplo n.º 2
0
        public matrannhiphan timxuong()
        {
            int sodiemxoa = 0;
            matrannhiphan ketqua = new matrannhiphan(sohang, socot, false);
            //matrannhiphan mt_bien;
            ketqua.xetca();
            int i, j;
            matrannhiphan tg = new matrannhiphan(sohang, socot);
            for (i = 0; i < this.sohang; ++i)
                for (j = 0; j < this.socot; ++j)
                    tg.data[i, j] = data[i, j];
            matrannhiphan tg1 = new matrannhiphan(sohang, socot);
            for (i = 0; i < this.sohang; ++i)
                for (j = 0; j < this.socot; ++j)
                    tg1.data[i, j] = tg.data[i, j];
            do
            {
                sodiemxoa = 0;
                //mt_bien = tg.tachbien();
                for (i = 0; i < this.sohang; ++i)
                    for (j = 0; j < this.socot; ++j)
                        if (ketqua.xet[i, j])
                        {
                            // if(mt_bien.data[i,j])
                            if (tg.diembien(i, j))
                            {
                                if (tg.diemxuong(i, j))
                                {
                                    ketqua.data[i, j] = true; ketqua.xet[i, j] = false;
                                    sodiemxoa++;
                                }
                                else if (tg.diembiendoi(i, j) && tg1.diembiendoi(i, j))
                                {

                                    ketqua.xet[i, j] = false;
                                    tg.data[i, j] = tg1.data[i, j] = false;
                                    sodiemxoa++;

                                }
                                else
                                    if (!tg.diemxuong(i, j))
                                    {
                                        tg1.data[i, j] = false; ketqua.xet[i, j] = false;
                                        sodiemxoa++;
                                    }
                            }

                        };
                tg = new matrannhiphan(sohang, socot);
                for (i = 0; i < this.sohang; ++i)
                    for (j = 0; j < this.socot; ++j)
                        tg.data[i, j] = tg1.data[i, j];
            } while (sodiemxoa > 0);
            return tg;
        }
Ejemplo n.º 3
0
 public matrannhiphan noi()
 {
     matrannhiphan ketqua = new matrannhiphan(sohang, socot);
     int i, j;
     for (i = 0; i < sohang; ++i)
         for (j = 0; j < socot; ++j)
         {
             ketqua.data[i, j] = this.data[i, j];
         }
     for (i = 0; i < sohang; ++i)
         for (j = 0; j < socot; ++j)
             if (ketqua.diemnoi(i, j))
                 ketqua.data[i, j] = true;
     return ketqua;
 }
Ejemplo n.º 4
0
 public int sosanh(matrannhiphan anh2)
 {
     int ketqua = 0;
     int i, j;
     for (i = 0; i < Sohang; ++i)
         for (j = 0; j < socot; ++j)
         {
             if (data[i, j] != anh2.data[i, j]) ketqua++;
         }
     return ketqua;
 }
Ejemplo n.º 5
0
 public matrannhiphan chuanhoa()
 {
     matrannhiphan ketqua = new matrannhiphan(sohang, socot);
     int i, j;
     for (i = 0; i < sohang; ++i)
         for (j = 0; j < socot; ++j)
             ketqua.data[i, j] = this.data[i, j];
     for (i = 0; i < sohang; ++i)
         for (j = 0; j < socot; ++j)
             ketqua.chuanhoa(i, j);
     return ketqua;
 }
Ejemplo n.º 6
0
 public matrannhiphan gian()
 {
     matrannhiphan ketqua = new matrannhiphan(sohang, socot);
     int i, j, k, l;
     for (i = 0; i < sohang; ++i)
         for (j = 0; j < socot; ++j) ketqua.data[i, j] = data[i, j];
     for (i = 0; i < sohang; ++i)
         for (j = 0; j < socot; ++j)
             if (data[i, j])
             {
                 for (k = 0; k < 3; ++k)
                     for (l = 0; l < 3; ++l)
                     {
                         if (hople(i + k - 1, j + l - 1)) ketqua.data[i + k - 1, j + l - 1] = true;
                     }
             }
     return ketqua;
 }
Ejemplo n.º 7
0
        public matrannguyen phanvung()
        {
            matrannguyen kq = new matrannguyen(512, 512);
            matrannguyen tg = new matrannguyen(32, 32);
            matrannguyen tg1 = new matrannguyen(32, 32);
            for (int i = 0; i < 32; ++i)
                for (int j = 0; j < 32; ++j)
                {
                    int bien = 0;
                    for (int k = 0; k < 16; ++k)
                        for (int l = 0; l < 16; ++l)
                        {
                            bien += data[16 * i + k, 16 * j + l];
                        }
                    bien = (int)bien / (16 * 16);
                    tg.data[i, j] = bien;
                }
            for (int i = 0; i < 32; ++i)
                for (int j = 0; j < 32; ++j)
                {
                    int xet = 0;
                    for (int k = 0; k < 16; ++k)
                        for (int l = 0; l < 16; ++l)
                        {
                            xet += (int)(data[16 * i + k, 16 * j + l] - tg.data[i, j]) * (data[16 * i + k, 16 * j + l] - tg.data[i, j]);
                        }
                    tg1.data[i, j] = (int)xet / (16 * 16);
                }
            matrannhiphan tg3 = new matrannhiphan(32, 32);
            for (int i = 0; i < 32; ++i)
                for (int j = 0; j < 32; ++j)
                {
                    tg3.data[i, j] = (tg1.data[i, j] > 40);
                }
            tg3 = tg3.co();
            tg3 = tg3.co();
            //tg3 = tg3.co();
            //tg3 = tg3.co();
            //tg3 = tg3.gian();
            //tg3 = tg3.gian();
            tg3 = tg3.gian();
            tg3 = tg3.gian();
            matrannhiphan tg4 = tg3.tachbien();
            for (int i = 0; i < 32; ++i)
                for (int j = 0; j < 32; ++j)
                {
                    for (int k = 0; k < 16; ++k)
                        for (int l = 0; l < 16; ++l)
                        {
                            if (!tg3.data[i, j])
                                kq.data[16 * i + k, 16 * j + l] = 255;
                            else
                                kq.data[16 * i + k, 16 * j + l] = 0;

                        }
                }
            int ng;
            for (int i = 0; i < 32; ++i)
                for (int j = 0; j < 32; ++j)
                    if (tg4.data[i, j])
                    {
                        ng = (int)(max(new rect(16 * i, 16 * j, 16, 16)) + min(new rect(16 * i, 16 * j, 16, 16))) / 2;
                        for (int k = 0; k < 16; ++k)
                            for (int l = 0; l < 16; ++l)
                            {
                                if (data[16 * i + k, 16 * j + l] > ng + 10)
                                    kq.data[16 * i + k, 16 * j + l] = 255;
                                else
                                    kq.data[16 * i + k, 16 * j + l] = 0;
                            }
                    }
            return kq;
        }
Ejemplo n.º 8
0
 public matrannhiphan(matrannhiphan m)
 {
     int i, j;
     sohang = m.sohang;
     socot = m.socot;
     data = new bool[sohang, socot];
     for (i = 0; i < this.sohang; ++i)
         for (j = 0; j < this.socot; ++j)
             data[i, j] = m.data[i, j];
 }
Ejemplo n.º 9
0
        public matrannhiphan xoa()
        {
            int i, j;
            matrannguyen tg = this.trichdactrung();

            matrannhiphan ketqua = new matrannhiphan(sohang, socot);
            for (i = 0; i < sohang; ++i)
                for (j = 0; j < socot; ++j) ketqua.data[i, j] = this.data[i, j];
            for (i = 0; i < sohang; i++)
                for (j = 0; j < socot; ++j)
                    if (tg.data[i, j] == 1) if (this.chieudainhanh(i, j) < 3) ketqua.xoa_nhanh(i, j);
            return ketqua;
        }
Ejemplo n.º 10
0
 public matrannhiphan t_xdoi()
 {
     matrannhiphan kq = new matrannhiphan(sohang, socot, false);
     for (int i = 0; i < kq.sohang; i++)
         for (int j = 0; j < kq.socot; j++)
         {
             if (this.data[i, j] == true)
             {
                 bool xet = t_ddoi(i, j);
                 if (xet == true)
                 {
                     bool xet1 = t_xddoi(i, j);
                     if (xet1 == true)
                         this.data[i, j] = false;
                 }
             }
         }
     kq = t_conver();
     kq = kq.t_xdoi();
     return kq;
 }
Ejemplo n.º 11
0
        public matrannhiphan t_mtxuong()
        {
            matrannhiphan kq = new matrannhiphan(sohang, socot, false);
            matrannhiphan tg = new matrannhiphan(sohang, socot, false);
            bool xoa = false;
            do
            {
                int dem = 0;
                tg = t_mtb();
                for (int i = 1; i < kq.socot - 1; i++)
                    for (int j = 1; j < kq.socot - 1; j++)
                    {
                        if (tg.data[i, j] == true)
                        {
                            bool xet = false;
                            xet = t_dxuong(i, j);
                            if (xet == false)
                            {
                                data[i, j] = false;
                                dem++;
                            }
                        }

                    }
                if (dem == 0) xoa = true;
            }
            while (xoa == false);
            kq = t_conver();
            return kq;
        }
Ejemplo n.º 12
0
 public matrannhiphan t_mtb()
 {
     matrannhiphan kq = new matrannhiphan(sohang, socot, false);
     for (int i = 0; i < kq.socot; i++)
         for (int j = 0; j < kq.socot; j++)
         {
             bool tg = false;
             tg = diembien(i, j);
             if (tg == true)
                 kq.data[i, j] = true;
             else
                 kq.data[i, j] = false;
         }
     return kq;
 }
Ejemplo n.º 13
0
 public matrannhiphan t_conver()
 {
     matrannhiphan kq = new matrannhiphan(socot, sohang, false);
     for (int i = 0; i < kq.socot; i++)
         for (int j = 0; j < kq.socot; j++)
         {
             kq.data[i, j] = data[i, j];
         }
     return kq;
 }