资源简介
KLT经典C程序,算法清晰易懂.好!
代码片段和文件信息
#include “stdafx.h“
#include “macro.h“
#include “stdlib.h“
#include “time.h“
#include
//#include “resource.h“
WAVPyramid InputImage;
int main(int argc char *argv[])
{
clock_t startend;
double epl;
int ijm=0;
char read;
double t=1;
/*FILE *fp;
double *img*imga;
int n;*/
char *encodename = argv[1];
char *decodename = argv[2];
txtname = argv[4];
/*imga=(double *)malloc(sizeof(double)*512*512*16);
img=(double *)malloc(sizeof(double)*512*512*16);*/
if(argc!=5)
{
printf(“----------------------error-------------------\n“);
printf(“Usage:..>decode 生成码流文件名 重构图像文件名 小波类型 存储变换矩阵文件名\n“);
printf(“请按如下方式输入命令行参数!for example\n“);
printf(“decode jasper1_1-16_0.25.dat jasper1_1-16_inverse_0.25.raw 97 transform1-16_0.25.txt\n“);
ErrorExit();
}
printf(“*********************************\n“);
printf(“*** 西安电子科技大学智能所 ***\n“);
printf(“*** ——2010.09 ***\n“);
printf(“*** ——滕 涛 ***\n“);
printf(“*********************************\n“);
for(i=0;argv[3][i]!=‘\0‘;i++)
{
if(argv[3][i]==‘.‘)
m = 1;
else
if(m == 0)
decoderate = 10 * decoderate + (argv[3][i] - 48);
else
{
for(j=0;j t = t * 0.1;
decoderate = decoderate + t * (argv[3][i] - 48);
t =1;
m++;
}
}
//fp=fopen(“e:\\transform.raw““rb“);
//fread(img sizeof(double) 512*512*16 fp);
//for(n=0;n<512*512*16;n++)
// imga[n]=img[n];
////Print(imga1512);
// WAV97R(decodenameimga);
fp=fopen(encodename“rb“);
if (fp==NULL)
{
printf(“Error in read file ! exit.\n“);
ErrorExit();
}
MSB = fgetc(fp);
read = fgetc(fp);
hsize |= read;
hsize <<= 8;
read = fgetc(fp);
hsize |= read;
read = fgetc(fp);
vsize |= read;
vsize <<= 8;
read = fgetc(fp);
vsize |= read;
read = fgetc(fp);
ssize = read&0xff;;
read = fgetc(fp);
j = read&0x01;
if(j==1)
wavelet = 97;
else
wavelet = 53;
level0 = read&0x1E;
level0 >>= 1;
level1 = read&0xE0;
level1 >>= 5;
read = fgetc(fp);
img_bit = read&0x3F;
scal = read&0xC0;
scal >>= 6;
if(WAVPyramidInitialize(&InputImage))
{
ErrorExit();
}
if(WAVPyramidZero(&InputImage))
{
ErrorExit();
}
InputInitialize(&input_buffer);
start_model();
start_decoding(&input_buffer);
start = clock();
if (SPECKDecode(&InputImage))
{
ErrorExit();
}
end = clock();
epl = (double)(end-start)/CLK_TCK;
printf(“The decode time is: %f\n“epl);
if(WritePyramidData(decodename&InputImage))
{
ErrorExit();
}
exit(EXIT_NOERROR);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-10-07 10:25 普通KLT\
目录 0 2011-10-07 10:26 普通KLT\Debug\
文件 3078 2011-08-26 16:42 普通KLT\Debug\KLT_Cuprite_r2_s3_0.25.bat
文件 2994 2011-08-26 16:42 普通KLT\Debug\KLT_Cuprite_r2_s3_0.5.bat
文件 2826 2011-08-26 16:42 普通KLT\Debug\KLT_Cuprite_r2_s3_1.bat
文件 2826 2011-08-26 16:42 普通KLT\Debug\KLT_Cuprite_r2_s3_2.bat
文件 2742 2011-08-26 16:42 普通KLT\Debug\KLT_jasper1_0.25.bat
文件 5458 2011-08-26 16:42 普通KLT\Debug\KLT_jasper1_0.25_8.bat
文件 2658 2011-08-26 16:42 普通KLT\Debug\KLT_jasper1_0.5.bat
文件 2490 2011-08-26 16:42 普通KLT\Debug\KLT_jasper1_1.bat
文件 2490 2011-08-26 16:42 普通KLT\Debug\KLT_jasper1_2.bat
文件 3022 2011-08-26 16:42 普通KLT\Debug\KLT_lunar1_r7_s2_0.25.bat
文件 2938 2011-08-26 16:42 普通KLT\Debug\KLT_lunar1_r7_s2_0.5.bat
文件 2770 2011-08-26 16:42 普通KLT\Debug\KLT_lunar1_r7_s2_1.bat
文件 2770 2011-08-26 16:42 普通KLT\Debug\KLT_lunar1_r7_s2_2.bat
文件 3022 2011-08-26 16:42 普通KLT\Debug\KLT_moffett_sc01_0.25.bat
文件 2938 2011-08-26 16:42 普通KLT\Debug\KLT_moffett_sc01_0.5.bat
文件 2770 2011-08-26 16:42 普通KLT\Debug\KLT_moffett_sc01_1.bat
文件 2770 2011-08-26 16:42 普通KLT\Debug\KLT_moffett_sc01_2.bat
文件 67584 2011-08-26 16:41 普通KLT\Debug\decode.exe
文件 396056 2011-08-26 16:41 普通KLT\Debug\decode.ilk
文件 568320 2011-08-26 16:41 普通KLT\Debug\decode.pdb
文件 73216 2011-08-26 16:41 普通KLT\Debug\encode.exe
文件 459436 2011-08-26 16:41 普通KLT\Debug\encode.ilk
文件 633856 2011-08-26 16:41 普通KLT\Debug\encode.pdb
文件 8388608 2011-08-26 16:42 普通KLT\Debug\jasper1_1-16.raw
文件 524288 2011-08-26 16:42 普通KLT\Debug\jasper1_1-16_0.25.dat
文件 26030 2011-08-26 16:42 普通KLT\Debug\transform1-16_0.25.txt
目录 0 2011-10-07 10:25 普通KLT\Release\
文件 22528 2011-08-28 16:13 普通KLT\Release\decode.exe
文件 265216 2011-08-28 16:13 普通KLT\Release\decode.pdb
............此处省略87个文件信息
评论
共有 条评论