亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pso+圖像壓縮

?? 該算法將粒子對算法應用于圖像矢量量化
??
字號:
# include <stdio.h>
# include <math.h>
# include<stdlib.h>
#include<time.h>
#include<fstream.h>

# define M 4096
# define N 256
# define L 16
# define POPSIZE 2
# define DIMENSION N*L
# define MAXLOOP 17
# define TEAM 2

float c1=0.3,c2=0.5;
float w=0.1;
float Vmax=255.0,Xmax=255.0,Xmin=0.0;

float G[DIMENSION];
float gbest;

typedef struct
{ float position[DIMENSION];
	float speed[DIMENSION];
	float best_position[DIMENSION];
	float fitness;
	float pbest;
}prtc;
 
prtc particle[POPSIZE];

struct dis
{ float data;
   int list;
}D[M];

float udpart[M][TEAM];
int pic[M][L];
int u[M][N];
int p_flag;

void GenVector();
void init();
void update();
void calculate_fitness(int num);
void localbest(int num);
void globalbest(int num);
void do_lbg(int num);

void main()
{   GenVector();
	int i,k,t,time;
	float r1,r2;
	for(time=0;time<TEAM;time++)
	{ init();
		for(i=0;i<MAXLOOP;i++)
		{ for(k=0;k<POPSIZE;k++)
			{for(t=0;t<DIMENSION;t++)
				{ r1=(float)rand()/(RAND_MAX+1);
				   r2=(float)rand()/(RAND_MAX+1);
					
	particle[k].speed[t]=w * particle[k].speed[t]+c1*r1*(particle[k].best_position[t]-particle[k].position[t]+c2*r2*(G[t]-particle[k].position[t]);
     particle[k].position[t]=particle[k].position[t]+particle[k].speed[t];
                       if (particle[k].position[t]>Xmax)
                            particle[k].position[t]=Xmax;
                       if (particle[k].position[t]<Xmin)
                            pa[k].position[t]=Xmin;
			     }
                   do_lbg(k);
				calculate_fitness(k);
                    localbest(k);
		     }
              globalbest(1);
              printf("gbest is %f:",gbest);
		   printf("flag is %d \n",P_flag);
	     }  
		   for(i=0;i<M;i++)
		      udpart[i][time]=particle[p_flag].position[i];
     }   
	update();
	 
	for(i=0;i<MAXLOOP;i++)
	{    for(k=0;k<POPSIZE;k++)
			{for(t=0;t<DIMENSION;t++)
				{ r1=(float)rand()/(RAND_MAX+1);
				   r2=(float)rand()/(RAND_MAX+1);
					
	particle[k].speed[t]=w * particle[k].speed[t]+c1*r1*(particle[k].best_position[t]-particle[k].position[t]+c2*r2*(G[t]-particle[k].position[t]);
     particle[k].position[t]=particle[k].position[t]+particle[k].speed[t];
                       if (particle[k].position[t]>Xmax)
                            particle[k].position[t]=Xmax;
                       if (particle[k].position[t]<Xmin)
                            pa[k].position[t]=Xmin;
			     }
                   do_lbg(k);
				calculate_fitness(k);
                    localbest(k);
		     }
              globalbest(1);
              printf("gbest is %f:",gbest);
		   printf("flag is %d \n",P_flag);
     }  
		float psnr=(float) 10*log10(255*255/gbest)'
		printf("the best psnr is:%f\n",psnr);
		printf("the gbest is :%f\n",gbest);
		printf("the best particles number is part %d:\n",p_flag);
		
		for(k=0;k<M;k++)
		    printf("particle[% d].position[% d] is % f",p_flag,k,particle[p_flag].position[k]);
		for(i=0;i<M;i++)
		    for(l=o;k<N;K++)
		        if(u[i][k]==1)
				   printf("u[% d][% d] is % d", i,k,u[i][k]);
} 
void init()
{int i=0,j=0,k,p,index1,index2;
  srand((unsigned int) time(NULL));
  
  for(k=0;k<N;k++)
     {  index1=(int)(M*rand()/(RAND_MAX+1));
      index2=(int)(M*rand()/(RAND_MAX+1));
	 for(p=0;p<L;p++)
	   { particle[0].position[j]=(float)pic[index1][p];
	    particle[i+1].position[j]=(float)pic[index2][p];
	    j++;
	    }  

     }
   
	for(k=0;k<POPSIZE;k++)
	     for(p=0;p<DIMENSION;p++)
		     particle[k].speed[p]=(float)rand()*255/(RAND_MAX+1);
			
	for(i=0;i<POPSIZE;I++)
      { 
          for(j=0;j<DIMENSION;j++)
           particle[i].best_position[j]=particle[i].position[j];
           calculate_fitness(i);
           particle[i].pbest=particle[i].fitness;
       }
     globalbest(0);
      printf("init gbest is: %f\n",gbest);	
}

void calculate_fitness(int num)
{
   int i,j,k,p=0;
   float sum=0;
   float a[L],b[L],c;
   float part0[N][L];
   float part1[N][L];
   
   if(num==0)
   {
       for(i=0;i<N;i++)
	{  
	     for(k=0;j<L;j++)
		{ 
		   part0[i][j]=particle[0].position[p];
		   p++;
		 }
	}
     for(i=0;i<M;i++) 
	{
	   for(j=0;j<N;j++)
	   {
	     b[j]=0;
		for(k=0;k<L;k++)
		{
		  a[k]=pic[i][k]-part0[j][k];
		  b[j]+=a[k]*a[k];
		  }
		}
	c=b[0];
      for(j=1;j<N;j++)
         {
            if(c>b[j)];
               c=b[j];
           }
     sum+=c;
	}
}
 else
 {
     for(i=0;i<N;i++)
	{
	    for(j=0;j<L;j++)
	    {
	       part1[i][j]=particle[1].position[p];
		  p++;
		}
	}
     for(i=0;i<M;i++)
     {
        for(j=0;j<N;j==)
         {  b[j]=0;
              for(k=0;k<L;k++)
               { 
                   a[k]=pic[i][k]-part1[j][k];
			 }
		}
		c=b[0];
		for(j=1;j<N;j++)
		{
		   if(c>b[j])
		     c=b[j];
		}
          sum+=c;
	}
}
   float x=(float)sum/(M*L);
   particle[sum].fitness=x;
}


void localbest(int num)
{
   int i;
   if(particle[num].pbest>particle[num].fitness)
    {
       particle[num].pbest=particle[num].fitness;
	  for(i=0;i<DIMENSION;i++)
	      particle[num].best_position[i]=particle[num].position[i];
	}
}

void globalbest(int num)
{
   int i,j;
   int min_flag=0;
   float temp;
   if(num==0)
   {
      temp=particle[0],fitness;
	  for(i=1;i<POPSIZE;i++)
	{
	    if(temp>particle[i].fitness)
	     { 
		   temp=particle[i].fitness;
		   min_flag=i;
		}
	}  
	for(j=0;j<DIMENSION;j++)
	{
	  G[j]=particle[min_flag].position[j];
	 }
     gbest=particle[min_flag].fitness;
	
  }
else
{ 
    for(i=0;i<POPSIZE;i++)
    {
       if(gbest>particle[i].pbest)
	    { 
	     gbest=particle[i].pbest;
		for(j=0;j<DIMENSION;j++)
		    G[j]=particle[i].best_position[j];
		}  
	}	
}

     p_flag=0;
	temp=particle[0].pbest;
	for(i=1;i<POPSIZE;i++)
	{
	    if(temp>particle[i].pbest)
	    {
	       temp=particle[i].pbest;
		  p_flag=i;
		}
	}
}


void update()
{
    srand((unsigned int)time(NULL))
    int k,p,j;
    for(j=0;j<DIMENSION;j++)
		partice[0].position[j]=udpart[j][0];
	for(j=0;j<DIMENSION;j++)
          particle[1].position[j].=udpart[j][1];
     for(k=0;k<POPSIZE;k++)
          particle[k].speed[p]=(float)rand()*255/(RAND_MAX+1);
}


void do_lbg(int num)
{
   float v_book[N][L];
   int i=0,j,t,loop,p=0,flag;
   float a,min,max,max_list,b[N],D2[M];
   int sum[N],update_array[L];
   int max_flag[M],r_flag[M];
   
   for(i=0;i<N;i++)
    {
      for(j=0;j<L;j++)
	 {
	    V_book[i][j]=particle[num].position[p];
	    p++;
	  }
	}  
	for(loop=0;loop<3;loop++)
	{
	   for(i=0;i<M;i++)
	   {
	      for(j=0;j<N;j++)
		{
		    b[j]=0;
		    for(t=0;t<L;t++)
		    {
		      a=pic[i][t]-v_book[j][t];
			 b[j]+=a*a;
			 }
		}
	      min=b[0];
		 flag=0;
		 for(j=1;j<N;j++)
		{
		     if(min>b[j])
			{
			   min=b[j];
			   flag=j;
			 }
			u[i][j]=0;
		}
          u[i][flag]=1;
          D[i].data=min;
		D[i].list=i;
	   }
	   
	   for(j=0;j<N;j++)
	   {
	      sum[j]=0;
		 for(i=0;i<M;i++)
		 {
		  sum[j]+=u[i][j];
		  }
	   }
	   for(j=0;j<N;j++)
        {
             if(sum[j]>1)
              {  
                for(t=0;t<L;t++)
                     update_array[t]=0;
                for(i=0;i<M;i++)
                    if(u[i][j]==1)	
                        for(t=0;t<L;t++)
                             update_array[t]+=pic[i][t];
                 for(t=0;t<L;t++)
                     v_book[j][t]=(float)update_array[t]/sum[j];
                }
          }
      }
 
      
          for(i=0;i<M;i++)
	      {
		    max=D[i].data;
		    max_list=D[i].list;
		    max_flag[i]=i;
		    
		    
		    for(j=i+1;j<M;j++)
		    {
		         if(D[j].data>max)
			    {
			      max=D[j].data;
				 max_list=D[j].list;
				 max_flag=j;
				 }
			}
			
			int row=max_flag[i];
               D[row].data=D[i].data;
               D[row].list=D[i].list;
			D[i].data=max;
			D[i].list=max_list;
		}


		int top=0;
		for(j=0;j<N;j++)
		{
		     if(sum[j]==0)
			{
			  int pic_row=D[top].list;
			  for(t=0;t<16;t++)
			  {
			    v_book[j][t]=(float)pic[pic_row][t];
			  }
			    top++;
			 }
		}
		 
		 p=0;
		 for(i=0;i<N;i++)
		 {
		    for(j=0;j<L;j++)
		    {
		       particle[num].position[p]=(float)v_book[i][j];
			  P++;
			}
		}	
		
}


void GenVector()
{
    ifstream in_file;
    int i=0;
    int temp,total[65536],ori_pic[256][256];
    in_file.open("lena.data.txt",ios::in);
    if(!in_file)
    {
       cout<<"打開文件失敗"<<endl;
	  exit(1);
	 }
	 

	while(!(in_file>>temp).eof())
	{
	   total[i]=temp;
	    i++;
	 }
     int j,k;
     i=0;
     for(k=0;k<256;k++)
     {  
        for(j=0;j<256;j++)
          { 
				ori_pic[k][j]=total[i];
				i++;
		}
	}
	
	int m,n;
	for(i=0;i<64;i++)
	    for(j=0;j<64;j++)
	         for(m=0;m<4;m++)
			for(n=0;n<4;n++)
			   pic[64*i+j][4*m+n]=ori_pic[4*i+m][4*j+n];
	in_file.close();
}	
				
	
   
   
   
   
   
   
   
   

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97久久精品人人做人人爽50路| 精品一区二区三区免费观看 | 国产91丝袜在线播放0| 午夜精品久久久久久久久| 伊人色综合久久天天人手人婷| 欧美激情一区二区三区蜜桃视频| 久久亚洲一区二区三区明星换脸| 26uuu久久综合| 国产午夜精品一区二区三区视频| 久久久久国产精品麻豆| 久久久综合视频| 国产精品美女视频| 中文字幕亚洲欧美在线不卡| 亚洲免费在线看| 亚洲第一主播视频| 久久国产免费看| 国产一区二区三区免费看| 丰满白嫩尤物一区二区| 99精品国产99久久久久久白柏| 色综合久久99| 欧美一区国产二区| 久久色视频免费观看| 国产精品视频第一区| 亚洲综合免费观看高清完整版在线| 午夜电影一区二区| 国产综合色视频| 91伊人久久大香线蕉| 欧美日韩国产免费| 久久久亚洲午夜电影| 亚洲美女精品一区| 蜜臀精品一区二区三区在线观看 | 国产欧美日韩一区二区三区在线观看| 欧美经典一区二区| 亚洲精品欧美激情| 久久99精品久久久久久国产越南| 国产成人精品影院| 欧美日韩电影在线| 国产精品亲子伦对白| 亚洲电影激情视频网站| 国产毛片精品一区| 在线日韩国产精品| 久久久无码精品亚洲日韩按摩| 一区二区三区色| 国产综合久久久久影院| 色一情一伦一子一伦一区| 精品美女一区二区| 午夜视频在线观看一区二区三区| 国产成人免费视频| 欧美一区日韩一区| 一区二区三区在线视频观看| 国产精品自在在线| 欧美蜜桃一区二区三区| √…a在线天堂一区| 精品一区二区三区在线播放视频| 91丨porny丨最新| 久久久久国产成人精品亚洲午夜| 午夜视频在线观看一区| 色悠悠久久综合| 中文字幕久久午夜不卡| 久久不见久久见免费视频1| 欧美在线|欧美| 中文字幕中文字幕一区二区| 国产一区二三区| 91麻豆精品91久久久久久清纯 | 欧美日韩午夜在线| 国产精品夫妻自拍| 国产在线国偷精品免费看| 精品视频一区二区三区免费| 亚洲欧美另类综合偷拍| 成人av影视在线观看| 国产喷白浆一区二区三区| 激情欧美日韩一区二区| 欧美一级国产精品| 婷婷综合久久一区二区三区| 欧美亚洲国产一卡| 亚洲成人av电影在线| 欧美最猛性xxxxx直播| 亚洲一区二区三区免费视频| 国产精品18久久久久久久网站| 丝袜美腿亚洲一区| 亚洲人亚洲人成电影网站色| 亚洲男同性恋视频| 一本色道亚洲精品aⅴ| 亚洲精品日韩综合观看成人91| 成人app在线| 综合久久综合久久| 日本精品视频一区二区三区| 亚洲欧美偷拍三级| 欧美视频中文字幕| 亚洲成人午夜电影| 日韩你懂的电影在线观看| 男女视频一区二区| 久久久美女艺术照精彩视频福利播放| 黄网站免费久久| 日本一二三不卡| 色噜噜久久综合| 国产精品一二三| 国产精品色哟哟| 色丁香久综合在线久综合在线观看| 亚洲成人av在线电影| 欧美一级片在线看| 国产精品自在在线| 曰韩精品一区二区| 日韩欧美国产1| 成人国产电影网| 亚洲午夜久久久久中文字幕久| 91麻豆精品91久久久久同性| 国产伦精一区二区三区| 成人欧美一区二区三区| 5月丁香婷婷综合| 国产成人午夜视频| 亚洲成人资源网| 国产喂奶挤奶一区二区三区| 在线观看一区不卡| 黄色日韩三级电影| 亚洲精品国产精华液| 日韩欧美区一区二| 欧洲av在线精品| 国产精品自拍av| 日韩国产在线一| 国产精品久久久久永久免费观看 | 国产精品 日产精品 欧美精品| 亚洲四区在线观看| 久久尤物电影视频在线观看| 91毛片在线观看| 国产福利视频一区二区三区| 亚洲第一会所有码转帖| 国产欧美一区在线| 日韩欧美在线影院| 欧美亚洲国产bt| av电影在线观看完整版一区二区| 日本成人在线看| 亚洲午夜久久久久久久久久久| 久久久久久久精| 日韩免费看的电影| 欧美高清视频不卡网| 91网上在线视频| 成人激情小说网站| 国产麻豆精品一区二区| 麻豆精品一二三| 石原莉奈一区二区三区在线观看| 综合自拍亚洲综合图不卡区| 日本一区二区成人| 国产亚洲精品精华液| 26uuu精品一区二区| 日韩欧美国产wwwww| 91精品国产一区二区三区蜜臀| 91福利在线导航| 色综合久久88色综合天天 | 欧美群妇大交群的观看方式| 不卡视频一二三四| 成人性生交大片免费看在线播放| 久久成人羞羞网站| 久久国产精品99久久人人澡| 日本成人在线网站| 日韩av一级电影| 美腿丝袜亚洲综合| 午夜不卡在线视频| 三级在线观看一区二区| 五月婷婷激情综合| 日日夜夜一区二区| 蜜桃av一区二区三区| 麻豆成人久久精品二区三区小说| 麻豆精品蜜桃视频网站| 免费成人性网站| 国产原创一区二区三区| 国产精品一二一区| 不卡电影一区二区三区| 91麻豆免费看| 欧美色涩在线第一页| 欧美久久一区二区| 日韩欧美卡一卡二| 久久综合国产精品| 国产精品传媒在线| 香蕉乱码成人久久天堂爱免费| 日韩va亚洲va欧美va久久| 久久国产精品99精品国产| 国产一区999| www.在线成人| 欧美丰满美乳xxx高潮www| 精品久久久久久无| 中文一区二区完整视频在线观看| 最新不卡av在线| 日韩av一二三| 成人丝袜高跟foot| 欧美剧在线免费观看网站| 精品欧美久久久| 国产精品久久久久一区二区三区| 一区二区三区91| 激情亚洲综合在线| 日本乱人伦aⅴ精品| 欧美电影免费观看高清完整版在| 国产精品国产三级国产aⅴ无密码| 亚洲综合精品久久| 国产一区二区日韩精品| 欧洲一区二区三区免费视频| 精品粉嫩aⅴ一区二区三区四区 | 欧美日韩综合一区| 久久久一区二区三区| 亚洲高清三级视频|