±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 818  |  »Ø¸´: 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 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] Ò»Ö¾Ô¸ÄÏ¿ª´óѧ0710ÉúÎïѧ359Çóµ÷¼Á +6 ÍÃÍÃÍÃ111223314 2026-03-29 8/400 2026-04-02 22:37 by louise0220
[¿¼ÑÐ] 282Çóµ÷¼Á +3 aaa³µÁ¾ 2026-04-02 3/150 2026-04-02 21:55 by zllcz
[¿¼ÑÐ] Ò»Ö¾Ô¸Î人Àí¹¤0856£¬³õÊÔ334 +3 26¿¼ÑвÄÁÏ 2026-04-02 3/150 2026-04-02 21:22 by dongzh2009
[¿¼ÑÐ] 343Çóµ÷¼Á085601 +5 ҪŬÁ¦Ñ§Ï°x 2026-03-29 6/300 2026-04-02 21:18 by 1104338198
[¿¼ÑÐ] 262Çóµ÷¼Á +5 ÀøÖ¾Ò»¶¨·¢ÎÄÕ 2026-04-02 6/300 2026-04-02 12:51 by yulian1987
[¿¼ÑÐ] 271Çóµ÷¼Á +15 ÀÕ²¼ÀÊ@ 2026-03-31 20/1000 2026-04-02 11:24 by Sammy2
[¿¼ÑÐ] 348Çóµ÷¼Á +6 СÀÁ³æ²»ÀÁÁË 2026-03-27 7/350 2026-04-02 11:18 by sanrepian
[¿¼ÑÐ] 0805Çóµ÷¼Á +8 ÊÇË®·Ö 2026-03-31 8/400 2026-04-02 10:46 by guanxin1001
[¿¼ÑÐ] Ò»Ö¾Ô¸346ÉϺ£´óѧÉúÎïѧ +3 ÉϺ£´óѧ346µ÷¼Á 2026-04-01 3/150 2026-04-02 08:36 by w³æ³æ123
[¿¼ÑÐ] 320·Ö£¬²ÄÁÏÓ뻯¹¤×¨Òµ£¬Çóµ÷¼Á +14 Ò»¶¨Éϰ¶aaa 2026-03-27 18/900 2026-04-01 20:10 by »ý¼«µ÷¼ÁµÄСѧÉ
[¿¼ÑÐ] 303·Ö 0807ѧ˶Çóµ÷¼Á +3 TYC3632 2026-04-01 3/150 2026-04-01 19:24 by lwk2004
[¿¼ÑÐ] Ò»Ö¾Ô¸Öйú¿ÆÑ§Ôº´óѧ265Çóµ÷¼Á +8 Ìñµ­ye 2026-03-31 9/450 2026-04-01 14:34 by ÄæË®³Ë·ç
[¿¼ÑÐ] Ò»Ö¾Ô¸»ªÄÏʦ·¶361·Ö£¬»¯Ñ§Çóµ÷¼Á +4 Nicole88888 2026-04-01 4/200 2026-04-01 10:08 by ÌÆãå¶ù
[¿¼ÑÐ] 358Çóµ÷¼Á +3 ÍõÏòÑô»¨ 2026-03-31 3/150 2026-04-01 09:56 by zzchen2000
[¿¼ÑÐ] Çóµ÷¼Á£¬Ò»Ö¾Ô¸±±ÁÖʳƷÓëÓªÑø095500£¬301·Ö£¬ÒѹýÁù¼¶£¬ÓпÆÑо­Àú +4 ¿ìÀÖ´¢Ðî¹Þ 2026-03-31 4/200 2026-04-01 09:26 by JourneyLucky
[¿¼ÑÐ] ±¾¿Æ211ÉúÎïҽѧ¹¤³Ì085409Çóµ÷¼Á339·Ö +7 Àï×Óľyy 2026-03-29 7/350 2026-03-31 14:35 by fmesaito
[¿¼ÑÐ] 0703»¯Ñ§ +20 ÄÝÄÝninicgb 2026-03-27 20/1000 2026-03-31 13:33 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] ¹þ¶û±õ¹¤Òµ´óѧ²ÄÁÏÓ뻯¹¤×¨Ë¶378Çóµ÷¼Á +3 Ëþ±ÈÎÚ˹ 2026-03-30 3/150 2026-03-30 22:55 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 308Çóµ÷¼Á +7 īīĮ 2026-03-27 7/350 2026-03-28 07:43 by ÈÈÇéɳĮ
[¿¼ÑÐ] 330Ò»Ö¾Ô¸Öйúº£Ñó´óѧ »¯Ñ§¹¤³Ì 085602 ÓжÁ²©ÒâÔ¸ Çóµ÷¼Á +3 wywy.. 2026-03-27 4/200 2026-03-28 03:32 by fmesaito
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û