±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 817  |  »Ø¸´: 2

eeds136

½ð³æ (ÖøÃûдÊÖ)

[ÇóÖú] »Ò¶ÈÌݶȹ²Éú¾ØÕóVC´úÂ룡 ÒÑÓÐ1È˲ÎÓë

»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

Ò»Çж¼ËÆÄÇôÉñÆæ¡£¡£¡£¡£
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

justmc

ľ³æ (СÓÐÃûÆø)

²»ÖªÂ¥Ö÷˵µÄ»Ò¶È-Ìݶȹ²Éú¾ØÕóÊÇʲô¸ÅÄî°¡£¿Èç¹ûÊÇ»ù±¾µÄ»Ò¶È¹²Éú¾ØÕóGLCM£¬ÎÒÕâ¶ùµ¹Óеã¶ùC´úÂë¿ÉÒÔËÍÄã~
2Â¥2014-04-03 19:18:20
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

justmc

ľ³æ (СÓÐÃûÆø)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

ÕâÊÇÆÕͨµÄ»Ò¶È¹²Éú¾ØÕó´úÂ룬ҲÊDzο¼ÍøÉϵģ¬Â¥Ö÷¿´¿´ÓÐûÓаïÖú¡£

// Çó¾ùÖµ
double GetMean(double m[4])
{
        double nmean=0,sum=0;
        sum = m[0]+m[1]+m[2]+m[3];
        nmean = sum/4;
        return nmean;
}

// Çó·½²î
double GetSdDe(double m[4],double nmean)
{
        int i;
        double stde,sum=0;
        for (i=0;i<4;i++)
        {
                sum+=((m-nmean)*(m-nmean));
        }
        sum/=4;
        stde=sqrt(sum);
        return stde;
}

// ¼ÆËã»Ò¶È¹²Éú¾ØÕó
void GetGLCM(Mat mat_double, double glcm[8])
{
        double minvalue=0.0,maxvalue=0.0;
        int nW,nH;
        int j,i,n,m,dim;
        nW = mat_double.cols;
        nH = mat_double.rows;

        // ½«Í¼ÏñÁ¿»¯ÖÁ0-255
        Mat mat_uchar = Mat(nW,nH,CV_8UC1);
        minMaxLoc(mat_double, &minvalue, &maxvalue);
        mat_double.convertTo(mat_uchar, CV_8UC1, 255/(maxvalue-minvalue), -minvalue);

        // ΪÁ˼õÉÙ¼ÆËãÁ¿£¬½«Ô­Ê¼Í¼Ïñ0-255Á¿»¯³É16¼¶£¬£¨0,15£©Îª1£¬£¨16,31£©Îª2
        for(i=0;i<nH;i++)
                for(j=0;j<nW;j++)
                        for(n=0;n<16;n++)
                        {
                                uchar temp = mat_uchar.at<uchar>(i,j);
                                if((n*16<=temp)&&(temp<=n*16+15))
                                        mat_uchar.at<uchar>(i,j) = n;
                        }

                        // ¼ÆËãËĸö¹²Éú¾ØÕóP,È¡¾àÀëΪ1£¬½Ç¶È·Ö±ðΪ 0,45,90,135
                        Mat mat_co[4];
                        for (dim=0;dim<4;dim++)
                        {
                                mat_co[dim] = Mat::zeros(16,16,CV_64FC1);
                        }

                        int delta[4][2] = {{0,1}, {-1,1}, {1,0}, {1,1}};
                        int p = 0;
                        int x, y;
                        for (int i = 0; i < nH; i++)
                        {
                                for (int j = 0; j < nW; j++)
                                {
                                        x = mat_uchar.at<uchar>(i,j);
                                        for (p = 0; p < 4; p++)
                                        {
                                                if (j + delta[p][0] < nW && j + delta[p][0] >= 0 && i + delta[p][1] < nH && i + delta[p][1] >= 0)
                                                {
                                                        y = mat_uchar.at<uchar>(i+delta[p][1],j+delta[p][0]);
                                                        mat_co[p].at<double>(x,y) += 1.0;
                                                        mat_co[p].at<double>(y,x) += 1.0;
                                                }
                                        }
                                }
                        }

                        // ¹éÒ»»¯¹²Éú¾ØÕó
                        Mat temp_mat = Mat(16,16,CV_64FC1);
                        for (dim=0; dim<4; dim++)
                        {
                                Scalar sum_value = sum(mat_co[dim]);
                                temp_mat.setTo(sum_value);
                                divide(mat_co[dim],temp_mat,mat_co[dim]);
                        }

                        // ¶Ô¹²Éú¾ØÕó¼ÆËãÄÜÁ¿¡¢ìØ¡¢¹ßÐԾء¢Ïà¹Ø4¸öÎÆÀí²ÎÊý
                        double energy[4]={0};        //ÄÜÁ¿
                        double entropy[4]={0};        //ìØ
                        double inertia[4]={0};        //¹ßÐÔ¾Ø
                        double uX[4]={0};/*Ïà¹ØÐÔÖЦÌx*/  double uY[4]={0};/*Ïà¹ØÐÔÖЦÌy*/
                        double deltaX[4]={0};/*Ïà¹ØÐÔÖЦÒx*/ double deltaY[4]={0};/*Ïà¹ØÐÔÖЦÒy*/
                        double corelation[4]={0};        //Ïà¹ØÐÔ

                        Scalar temp_energy[4];        //ÄÜÁ¿
                        Mat mat_energy[4];
                        for (dim=0; dim<4; dim++)
                        {
                                mat_energy[dim] = Mat(16,16,CV_64FC1);
                                multiply(mat_co[dim], mat_co[dim], mat_energy[dim]);
                                temp_energy[dim] = sum(mat_energy[dim]);        //ÇóÄÜÁ¿
                                energy[dim] = temp_energy[dim].val[0];
                        }

                        for (dim=0; dim<4; dim++)
                        {
                                for (m=0;m<16;m++)
                                {
                                        for(n=0;n<16;n++)
                                        {
                                                double temp = mat_co[dim].at<double>(m,n);
                                                if (temp!=0)
                                                {
                                                        entropy[dim] = temp*log(temp)+entropy[dim]; //ìØ
                                                }
                                                inertia[dim] = (m-n)*(m-n)*temp+inertia[dim];  //¹ßÐÔ¾Ø
                                                uX[dim] = n*temp+uX[dim]; //Ïà¹ØÐÔÖЦÌx
                                                uY[dim] = n*temp+uY[dim]; //Ïà¹ØÐÔÖЦÌy
                                        }
                                }
                        }
                        for (dim=0;dim<4;dim++)
                        {
                                for (m=0;m<16;m++)
                                {
                                        for (n=0;n<16;n++)
                                        {
                                                double temp = mat_co[dim].at<double>(m,n);

                                                deltaX[dim] = (m-uX[dim])*(m-uX[dim])*temp+deltaX[dim]; //Ïà¹ØÐÔÖЦÒx
                                                deltaY[dim] = (n-uY[dim])*(n-uY[dim])*temp+deltaY[dim]; //Ïà¹ØÐÔÖЦÒy
                                                corelation[dim] = m*n*temp+corelation[dim];  
                                        }
                                }
                                corelation[dim] = (corelation[dim]-uX[dim]*uY[dim])/deltaX[dim]/deltaY[dim]; //Ïà¹ØÐÔ   
                        }

                        // ÇóÄÜÁ¿¡¢ìØ¡¢¹ßÐԾء¢Ïà¹ØµÄ¾ùÖµºÍ±ê×¼²î×÷Ϊ×îÖÕ8Î¬ÎÆÀíÌØÕ÷
                        glcm[0] = GetMean(energy);
                        glcm[1] = GetSdDe(energy,glcm[0]);
                        glcm[2] = GetMean(entropy);
                        glcm[3] = GetSdDe(entropy,glcm[2]);
                        glcm[4] = GetMean(inertia);
                        glcm[5] = GetSdDe(inertia,glcm[4]);
                        glcm[6] = GetMean(corelation);
                        glcm[7] = GetSdDe(corelation,glcm[6]);
}
3Â¥2014-04-03 19:24:08
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ eeds136 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] Çóµ÷¼Á +11 ÕÅzz111 2026-03-27 12/600 2026-04-02 22:47 by JourneyLucky
[¿¼ÑÐ] 085602 ÕÒµ÷¼Á +3 ÄæÊ±Õë¿ìÀÖ 2026-04-02 3/150 2026-04-02 21:23 by dongzh2009
[¿¼ÑÐ] Ò»Ö¾Ô¸ÉϺ£º£Ñó´óѧ083200ʳƷѧ˶£¬Çóµ÷¼Á£¬½ÓÊÜÆäËûרҵ +6 whatÕÅ 2026-04-01 7/350 2026-04-02 16:48 by zzsw+
[¿¼ÑÐ] ũѧ¿¼ÑÐÇóµ÷¼Á +3 dkdkxm 2026-04-01 3/150 2026-04-02 16:04 by wangjagri
[¿¼ÑÐ] 311Çóµ÷¼Á +16 zchqwer 2026-04-01 18/900 2026-04-02 10:15 by ²»³Ôô~µÄ؈
[¿¼ÑÐ] ÖØÇì´óѧ²ÄÁÏÓ뻯¹¤085600£¬³õÊÔ370+£¬ÇóÇóµ÷¼Á½¨Òé +5 shzhou_ 2026-04-01 6/300 2026-04-02 10:05 by olim
[¿¼ÑÐ] 348»·¾³¹¤³Ìµ÷¼Á +3 ÎâÑå׿24k 2026-04-01 3/150 2026-04-02 09:14 by nanaliuyun
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©¿Æ¼¼£¬085601×Ü·Ö305Çóµ÷¼Á +9 °ëÉú¹Ï£¡ 2026-04-01 11/550 2026-04-02 08:28 by Wang200018
[¿¼ÑÐ] 08ÉúÎïÓëҽҩר˶³õÊÔ346ÕÒµ÷¼Á +6 dianeeee 2026-04-01 7/350 2026-04-02 08:23 by guoweigw
[¿¼ÑÐ] °²È«¹¤³Ì 285 Çóµ÷¼Á +3 Xinyu56 2026-04-01 4/200 2026-04-01 21:50 by ¾²¾²¾²¾²¾²¾²¾²¾
[¿¼ÑÐ] 285Çóµ÷¼Á +7 AZMK 2026-03-30 13/650 2026-04-01 17:00 by Æß¶È²»ÐÅÈÎ
[¿¼ÑÐ] Ò»Ö¾Ô¸±±½»²ÄÁϹ¤³Ì×Ü·Ö358 +5 cs0106 2026-04-01 7/350 2026-04-01 11:45 by wangjy2002
[¿¼ÑÐ] 0710ÉúÎïѧÇóµ÷¼Á£¡ +6 ÐðÊöÎÄ 2026-03-31 6/300 2026-04-01 09:39 by JourneyLucky
[¿¼ÑÐ] µ÷¼ÁÉêÇë +8 ÕÅÕÅÕÅÕÅzy 2026-03-31 9/450 2026-04-01 08:29 by zjbkx
[¿¼ÑÐ] ¸´ÊÔµ÷¼Á +7 Ë«ÂíβƦÀϰå2 2026-03-31 7/350 2026-03-31 19:49 by Dyhoer
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤272Çóµ÷¼Á +25 °¢Ë¹µÙ·Ò2004 2026-03-28 25/1250 2026-03-31 16:27 by hypershenger
[¿¼ÑÐ] 277¹òÇóµ÷¼Á +8 1915668 2026-03-27 13/650 2026-03-31 14:58 by ÍõÁÁ_´óÁ¬Ò½¿Æ´ó
[¿¼ÑÐ] 276Çóµ÷¼Á +3 ÕԾûª 2026-03-29 3/150 2026-03-31 10:06 by cal0306
[¿¼ÑÐ] 105500ҩѧÇóµ÷¼Á£¬Ò»Ö¾Ô¸É½¶«´óѧҩѧ£¬348·Ö +3 gr¹þ¹þ¹þ 2026-03-28 3/150 2026-03-30 18:56 by Ô´_2020
[¿¼ÑÐ] 0703 »¯Ñ§ Çóµ÷¼Á£¬Ò»Ö¾Ô¸É½¶«´óѧ 342 ·Ö +7 Shern¡ª- 2026-03-28 7/350 2026-03-30 16:31 by nothingͶ¸åÖÐ
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û