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

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

?? unit1.cpp

?? 基于小波變換的嵌入式圖像零樹編碼與解碼。
?? CPP
字號:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "setpar.h"
#include "Unit1.h"
#include "gwic.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
//#define TERMINATE ShowMessage
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
}
//---------------------------------------------------------------------------

int __fastcall TForm1::load_bmp(Graphics::TBitmap *bmp,float **pic, int *width, int *height,
	      int *orig_width, int *orig_height, int *maxcolor,	      BYTE *colormode)
{
  int i,j,h,w,oh,ow,c1,c2;
  float *p, *g;
  switch(bmp->PixelFormat)
  {
    case pf8bit  :   *colormode = CM_GRAY; break;
    case pf24bit :   *colormode = CM_RGB24;break;
    default : ;
  }
  ow = bmp->Width; oh = bmp->Height;
  if (ow<1 || oh<1) TERMINATE("PNM Width and Height must be > 0");
  w=ow>256 ? (ow+15) & 0xfffffff0 : (ow+7) & 0xfffffff8;  h=oh>256 ? (oh+15) & 0xfffffff0 : (oh+7) & 0xfffffff8;  *height = h; *width = w;  *orig_height = oh; *orig_width = ow;
  *maxcolor = 8;

  switch(*colormode)
  {
    case CM_GRAY: MALLOC(*pic,w*h*sizeof(float)); break;    case CM_RGB24: MALLOC(*pic,w*h*sizeof(float)*3); break;  }

  // Read image
  Byte *line;  p = *pic;  for(j=0; j<h; j++)  {    line=(Byte *)bmp->ScanLine[j];    if (*colormode == CM_GRAY)    {      for(i=0; i<w; i++,p++)      {	      if (i<ow && j<oh)  *p = *line++;        else *p = *(*pic + w*(j<oh?j:oh-1) + (i<ow?i:ow-1));      }    }    else if (*colormode == CM_RGB24)    {      for(i=0; i<w; i++)      {        if (i<ow && j<oh) {*p++ = *line++; *p++ = *line++; *p++ = *line++;}        else {g = (*pic + (3*w)*(j<oh?j:oh) + 3*(i<ow?i:ow));  *p++ = *g++; *p++ = *g++; *p++ = *g++;}      }    }
  }
}


void __fastcall TForm1::OpenBmpClick(TObject *Sender)
{
  if(bmpOpenDialog->Execute())
  {
    Image1->Picture->LoadFromFile(bmpOpenDialog->FileName);
  }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SaveWltClick(TObject *Sender)
{
  if(wltSaveDialog->Execute())
  {
  if(fmPar->ShowModal()==mrOk)
  {
    float bpp;
    int w,h,ow,oh,maxc,levelsY, levelsUV;
    float *f, *f2;
    U32 *coeff, *coeff2, *coeff3;
    heap2d *heap,*heap2,*heap3;
    header head;
    parameters par;
    int i,j,k;
    FILE *df;

    par.targetbpp = fmPar->etBPP->Text.ToDouble();
    par.transform = TR_DEFAULT;
    par.ccbsc = (int)(0.1 * 256.0);
    par.out=fopen(wltSaveDialog->FileName.c_str(),"wb");

    //load_pnm(par.in,&f,&w,&h,&ow,&oh,&maxc,&head.cm);
    load_bmp(Image1->Picture->Bitmap,&f,&w,&h,&ow,&oh,&maxc,&head.cm);

    head.magic = MAGIC; head.version = VERSION;
    head.iwidth = ow; head.iheight = oh;
    head.width = w; head.height = h;
    head.ccbsc = par.ccbsc;
    head.bpp[0] = maxc < 256 ? 8 : (maxc < 4096 ? 12 : 16); head.dpi = 0;
    head.transform = par.transform;
    switch (head.cm)
    {
      case CM_GRAY:
        head.levelsY = levelsY = forward_transform(f,w,h,head.transform);
        coeff = convert_matrix_from_float(f,w*h);
        heap = gen_2d_heap(coeff, w, h, levelsY);
        head.n[0] = heap->max;
        fwrite((void *)&head, 1, sizeof(header),par.out);
        start_coding(par.out,TOTALSTATES);
        zerotree_code(coeff,w,h,levelsY,(int)(par.targetbpp * ((float)(w*h)/8.0)),heap,ow*oh);
        break;
      case CM_GRAY_DEEPSPARC:
        TERMINATE("Unsupported color model\n");
        break;
      case CM_RGB24:
        head.bpp[1] = head.bpp[2] = head.bpp[0];
        if (head.bpp[0] != 8)TERMINATE("Unsupported color model - RGB24 with BPP != 8\n");
        convert_matrix_from_24bc_packed_to_yuv_planes(f,w*h);
        head.levelsY = levelsY = forward_transform(f,w,h,head.transform);
        head.levelsUV = levelsUV = forward_transform(f+w*h,w/2,h,head.transform);
        forward_transform(f+w*h+w*h/2,w/2,h,head.transform);
        coeff = convert_matrix_from_float(f,w*h*2);
        heap = gen_2d_heap(coeff, w, h, levelsY);
        heap2 = gen_2d_heap(coeff+w*h, w/2, h, levelsUV);
        heap3 = gen_2d_heap(coeff+w*h+w*h/2, w/2, h, levelsUV);
        head.n[0] = heap->max;
        head.n[1] = heap2->max;
        head.n[2] = heap3->max;
        fwrite((void *)&head, 1, sizeof(header),par.out);
        start_coding(par.out,TOTALSTATES);
        zerotree_code(coeff,w,h,levelsY,(int)((par.targetbpp*w*h*(256-2*head.ccbsc))/(256*8)),heap,ow*oh);
        zerotree_code(coeff+w*h,w/2,h,levelsUV,(int)((par.targetbpp*w*h*(256-head.ccbsc))/(256*8)),heap2,ow*oh);
        zerotree_code(coeff+w*h+w*h/2,w/2,h,levelsUV,(int)((par.targetbpp*w*h)/8),heap3,ow*oh);
        break;
      default:
        TERMINATE("Unsupported color model\n");
        break;
    }
    stop_coding();
    fclose(par.out);
  }
  }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::OpenWltClick(TObject *Sender)
{
  if(wltOpenDialog->Execute())
  {
    float bpp;
    int w,h,ow,oh,maxc,levelsY, levelsUV;
    float *f, *f2;
    U32 *coeff, *coeff2, *coeff3;
    heap2d *heap,*heap2,*heap3;
    header head;
    parameters par;
    int i,j,k;
    FILE *df;

    par.targetbpp = 1.0;
    par.transform = TR_DEFAULT;
    par.ccbsc = (int)(0.1 * 256.0);
    par.in=fopen(wltOpenDialog->FileName.c_str(),"rb");
    fread((void *)&head, 1, sizeof(header),par.in);
    start_decoding(par.in,TOTALSTATES);
    switch (head.cm)
    {
      case CM_GRAY:
        coeff = zerotree_decode(head.width,head.height,head.levelsY,head.n[0]);
        stop_decoding();
        f = convert_matrix_from_int(coeff,head.width*head.height);
        inverse_transform(f,head.width,head.height,head.transform);
        break;
      case CM_GRAY_DEEPSPARC:
        TERMINATE("Unsupported color model\n");
        break;
      case CM_RGB24:
        coeff = zerotree_decode(head.width,head.height,head.levelsY,head.n[0]);
        coeff2 = zerotree_decode(head.width/2,head.height,head.levelsUV,head.n[1]);
        coeff3 = zerotree_decode(head.width/2,head.height,head.levelsUV,head.n[2]);
        stop_decoding();
        MALLOC(f2,sizeof(float)*3*head.width*head.height);
        j = head.width * head.height;

        f = convert_matrix_from_int( coeff, head.width * head.height);
        inverse_transform( f, head.width, head.height, head.transform);
        for(i=0; i<j; i++) *(f2+i) = *(f+i); free(f);

        f = convert_matrix_from_int(coeff2, head.width * head.height / 2);
        inverse_transform(f, head.width / 2, head.height, head.transform);
        for(i=0; i<j/2; i++) *(f2+i+j) = *(f+i); free(f);

        f = convert_matrix_from_int( coeff3, head.width * head.height / 2);
        inverse_transform( f, head.width / 2, head.height, head.transform);
        for(i=0; i<j/2; i++) *(f2+i+j+j/2) = *(f+i); free(f);

        f = f2;
        convert_matrix_from_to_yuv_planes_24bc_packed(f,j);
        break;
      default:
        TERMINATE("Unsupported color model\n");
        break;
    }
    fclose(par.in);

    //save_pnm(par.out,f,head.width,head.height,head.iwidth,head.iheight,(1<<(head.bpp[0]))-1,head.cm);
    {
      float *pic=f;
      int width=head.width;
      int height=head.height;
      int orig_width=head.iwidth;      int orig_height=head.iheight;      int maxcolor=(1<<(head.bpp[0]))-1;      BYTE colormode=head.cm;

      Graphics::TBitmap *bmp=new Graphics::TBitmap();
      bmp->PixelFormat=pf24bit;
      bmp->Width=orig_width;
      bmp->Height=orig_height;
      int i,j,k;
      float *p;      Byte *ptr;      switch (colormode)      {        case CM_GRAY:        {          for (j=0; j<orig_height; j++)          {            p=pic+width*j;            ptr=(Byte *)bmp->ScanLine[j];            for (i=0; i<orig_width; i++,p++)            {              k = (int)*p;              if(k>maxcolor) k=maxcolor;              if (k<0) k=0;              if (maxcolor <256) {*ptr++=k;  *ptr++=k;  *ptr++=k;}              else {/*fputc(k & 0xff,out);  fputc(k >> 8,out);*/}            }          }          Image2->Width=bmp->Width;          Image2->Height=bmp->Height;                    Image2->Canvas->Draw(0,0,bmp);          break;        }        case CM_RGB24:        {          for (j=0; j<orig_height; j++)          {            p=pic+width*j*3;            ptr=(Byte *)bmp->ScanLine[j];            for (i=0; i<orig_width; i++)            {              k = (int)*p++; if(k>255) k=255; if (k<0) k=0;*ptr++=k;              k = (int)*p++; if(k>255) k=255; if (k<0) k=0;*ptr++=k;              k = (int)*p++; if(k>255) k=255; if (k<0) k=0;*ptr++=k;            }          }          Image2->Width=bmp->Width;          Image2->Height=bmp->Height;          Image2->Canvas->Draw(0,0,bmp);          break;        }        default:  TERMINATE("Unsupported colormode");      }
      delete bmp;
    }
  }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SaveBmpClick(TObject *Sender)
{
  if(bmpSaveDialog->Execute())
  {
    Image2->Picture->SaveToFile(bmpSaveDialog->FileName);
  }
}
//---------------------------------------------------------------------------



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99久久99| 欧美日本高清视频在线观看| 日本乱人伦一区| 欧美mv日韩mv亚洲| 亚洲日本护士毛茸茸| 激情文学综合丁香| 欧美日韩精品一区二区三区四区| 欧美激情在线一区二区三区| 天天操天天综合网| 欧美自拍偷拍一区| 国产精品乱码人人做人人爱 | 国产一区二区三区不卡在线观看| 99天天综合性| 精品国产三级电影在线观看| 亚洲18影院在线观看| gogogo免费视频观看亚洲一| 欧美电影免费提供在线观看| 亚洲国产成人精品视频| 99国产精品国产精品毛片| 国产欧美一区二区精品性色| 久久精品国产在热久久| 777久久久精品| 亚洲成人av资源| 在线免费观看日本欧美| 国产精品对白交换视频 | 捆绑变态av一区二区三区| 欧美视频在线播放| 亚洲综合色视频| 在线欧美日韩精品| 亚洲激情自拍视频| 欧美伊人精品成人久久综合97| 中文字幕日本乱码精品影院| 不卡电影免费在线播放一区| 欧美国产欧美综合| 成人三级伦理片| 国产精品美女久久久久久久网站| 成人av动漫网站| 中文字幕一区二区三区在线播放 | 久久精品99国产国产精| 欧美一级片免费看| 国产真实精品久久二三区| 亚洲精品在线电影| 国产精品18久久久久| 久久精品亚洲精品国产欧美| 国产精品12区| 亚洲靠逼com| 欧美日韩亚洲综合| 免费成人美女在线观看.| 精品久久久网站| 国产黑丝在线一区二区三区| 亚洲人午夜精品天堂一二香蕉| 一本色道**综合亚洲精品蜜桃冫| 亚洲一区二区在线免费看| 欧美日韩日日夜夜| 国产精品亚洲人在线观看| 国产精品久久国产精麻豆99网站| 99久久99久久精品免费观看| 亚洲夂夂婷婷色拍ww47| 欧美一区二区三区男人的天堂| 韩国一区二区在线观看| 亚洲国产经典视频| 欧美日韩国产另类一区| 国产高清亚洲一区| 亚洲图片一区二区| 精品日韩一区二区| 91美女视频网站| 秋霞影院一区二区| 国产精品麻豆网站| 欧美一级精品大片| 99国产精品久| 韩国午夜理伦三级不卡影院| 18成人在线观看| 精品成人a区在线观看| 一本到一区二区三区| 久久国产精品第一页| 亚洲裸体xxx| 精品欧美黑人一区二区三区| 色综合久久综合网| 国产一区激情在线| 午夜日韩在线观看| 日韩一区在线免费观看| 欧美一区二区观看视频| 色综合久久综合| 国产1区2区3区精品美女| 天天av天天翘天天综合网 | 日韩精品一区二| 日本高清不卡视频| 丁香啪啪综合成人亚洲小说 | 99视频一区二区三区| 久久不见久久见免费视频7| 一区二区在线观看视频| 国产欧美一区二区三区在线看蜜臀| 欧美日韩国产首页在线观看| 日本韩国精品在线| 91网站最新地址| 成人三级在线视频| 国产精品羞羞答答xxdd| 久久99蜜桃精品| 调教+趴+乳夹+国产+精品| 亚洲综合一区二区| 亚洲视频一区二区在线| 亚洲国产精品精华液ab| 国产欧美精品一区| 久久综合色天天久久综合图片| 91精品国产一区二区三区| 欧美精品免费视频| 欧美四级电影在线观看| 91成人免费在线视频| 99热这里都是精品| av中文一区二区三区| 国产+成+人+亚洲欧洲自线| 国产成人精品www牛牛影视| 黄色精品一二区| 久久狠狠亚洲综合| 国产麻豆91精品| 成人涩涩免费视频| 色综合久久天天综合网| 色偷偷久久人人79超碰人人澡| 91麻豆文化传媒在线观看| 99视频一区二区| 欧美性猛片aaaaaaa做受| 欧美日韩国产首页在线观看| 欧美一区二区三区四区视频| 51精品国自产在线| 日韩欧美中文字幕一区| 26uuuu精品一区二区| 国产婷婷一区二区| 国产精品福利av| 亚洲一级不卡视频| 奇米色777欧美一区二区| 久久精品国产精品亚洲综合| 国产精品资源在线观看| 成人精品免费视频| 欧美最新大片在线看 | 欧美色老头old∨ideo| 3d成人动漫网站| 久久久久久久久岛国免费| 国产精品久久99| 婷婷久久综合九色综合伊人色| 极品少妇一区二区| 99久久精品情趣| 在线电影院国产精品| 亚洲精品在线观看网站| 亚洲精品中文在线影院| 国产精品一区二区男女羞羞无遮挡| 国产综合色视频| 色综合久久综合| 日韩视频一区二区三区| 久久久精品欧美丰满| 亚洲四区在线观看| 亚洲国产精品久久人人爱 | 国产午夜精品美女毛片视频| 亚洲天堂av一区| 麻豆国产91在线播放| av日韩在线网站| 日韩精品最新网址| 亚洲精品久久7777| 韩国v欧美v日本v亚洲v| 99久精品国产| 日韩欧美一区在线| 一区二区中文视频| 另类小说一区二区三区| 色婷婷激情一区二区三区| 精品少妇一区二区三区视频免付费 | 欧美日韩精品一区二区| 亚洲国产精品高清| 麻豆91免费观看| 日韩一级完整毛片| 一区二区三区四区激情| 国产综合色产在线精品| 欧美日本在线一区| 亚洲精品日韩综合观看成人91| 国内精品免费**视频| 91麻豆精品国产综合久久久久久| 国产精品亲子伦对白| 国产一区二区在线影院| 欧美二区三区的天堂| 亚洲精品欧美综合四区| 成人精品一区二区三区四区| 久久只精品国产| 免费一级欧美片在线观看| 欧美午夜一区二区| 综合婷婷亚洲小说| 国产剧情在线观看一区二区| 日韩一区二区免费在线电影| 一区二区三区 在线观看视频| 国产91在线看| 2024国产精品| 国产精品自拍一区| 日韩精品一区二区三区中文精品| 亚洲成人久久影院| 色偷偷88欧美精品久久久| 成人欧美一区二区三区1314 | 色综合激情久久| 亚洲视频一区二区在线| 91视频一区二区三区| 日韩理论在线观看| 94-欧美-setu| 夜色激情一区二区| 欧美亚洲国产bt|