⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 decompress.m

📁 分形编码的解码程序
💻 M
字号:
%-----------------------------------------------------------------
  %---------------------分形解码程序--------------------------
  function image_file=decompress(fractal,iterates,size,side)
  %image_file 解码图象 
  %fractal存放分形图象压缩编码信息
  %size图象尺寸
  %side图象值域块大小
  DB_SIDE=side;
  N=size;
  I=ones(DB_SIDE);
  image_width=N;
  image_height=N;
  image=ones(N);
  reduced_image=ones(N/2);
  domain_block=zeros(DB_SIDE);
  transformed_domain_block=zeros(DB_SIDE);
  
  %上面是初始化部分,定义变量
  for iterate=1:iterates
      reduced_image=reduce_image(image);
      i=0;
      
      for range_y=1:DB_SIDE:image_height
          for range_x=1:DB_SIDE:image_width
               i=i+1;
              x=fractal(i).domain_x;
              y=fractal(i).domain_y;
              symmetry=fractal(i).symmetry;
              s=fractal(i).s;
              o=fractal(i).o;
              %获取变换参数
              if symmetry==0
                  transformed_domain_block=I*x;
              else
                  domain_block=copy_rectangle(reduced_image,x,y,DB_SIDE);
                  
                  switch symmetry
               case 1
                    transformed_domain_block=domain_block;
                case 2
                       transformed_domain_block=rot90(domain_block,-1);
                case 3
                      transformed_domain_block=rot90( domain_block,-2);
                case 4
                     transformed_domain_block=rot90(domain_block);
                case 5
                    transformed_domain_block=rot90(domain_block);
                   transformed_domain_block=fliplr( transformed_domain_block);
                case 6
                    transformed_domain_block=flipud(domain_block);
                case 7
                    transformed_domain_block=rot90(domain_block,-1);
                     transformed_domain_block=fliplr(domain_block);
                case 8
                    transformed_domain_block=fliplr(domain_block);
            end
            %------------------------------------------生成R块
              transformed_domain_block=s*transformed_domain_block+o*I;
              d=mean(mean(domain_block));
              r=mean(mean(transformed_domain_block));
              for r=1:DB_SIDE
                  for w=1:DB_SIDE
                      if   transformed_domain_block(r,w)<0
                            transformed_domain_block(r,w)=0;
                        else if   transformed_domain_block(r,w)>255
                                  transformed_domain_block(r,w)=255;
                                  %最灰度的调整
                              end
                          end
                      end
                  end
              end
              %write the map
              image=rer(transformed_domain_block,image,range_x,range_y,DB_SIDE); 
            
          end
         
      end
     
  end
  image_file=uint8(image);
  %subplot(1,2,2),
  imshow(image_file)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -