数据压缩全部代码.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据压缩全部代码数据压缩全部代码

游程编码(matlab): tu1=imread(f:******jpg); %读入图像 imshow(tu1); %显示原图像 % 以下程序是将原图像转换为二值图像 tu2=tu1(1:72900); %将原始图像写成一维的数据并设为 tu2 tu2length=length(tu2); % 计算tu2的长度 for i=1:1:tu2length % for 循环,目的在于转换为二值图像 if tu2(i)=127 tu2(i)=255; else tu2(i)=0; end end tu3=reshape(tu2,270,270); % 重建二维数组图像,并设为tu3 figure,imshow(tu3); % 以下程序为对原图像进行游程编码,压缩 x=tu3(:); %令x为新建的二值图像的一维数据组 x=1:100:length(x); % 显示游程编码之前的图像数据 figure,plot(x,x(x)); j=1; tu4(1)=1; for z=1:1:(length(x)-1) % 游程编码程序段 if x(z)==x(z+1) tu4(j)=tu4(j)+1; else data(j)=x(z); % data(j)代表相应的像素数据 j=j+1; tu4(j)=1; end end data(j)=x(length(x)); % 最后一个像素数据赋给data tu4length=length(tu4); % 计算游程编码后的所占字节数,记为tu4length y=1:10:tu4length ; % 显示编码后数据信息 figure,plot(y,tu4(y)); % 下面程序是游程编码解压 l=1; for m=1:tu4length for n=1:1:tu4(m); rec_tu(l)=data(m); l=l+1; end end u=1:100:length(rec_tu); % 查看解压后的图像数据 figure,plot(u,rec_tu(u)); rec2_tu=reshape(rec_tu,270,270); % 重建二维二维图像数组 figure,imshow(rec2_tu); % 显示解压恢复后的图像 算术编码(c语言): #include iostream using namespace std; const int N=200; void main(){ float lp[N],p[N],A[N],C[N],f[N],X[N][N]; float Z[N][N],w[N][N],l[N],h[N],t[N]; char xinyuan[N],code[N]; //定义信源符号、码字序列。 char v; float r=0,b=0,q=0,d=1,u; int i,j,k,g,n; lp[0]=0; int length,temp; //设定信源符号及其概率 cout请输入信源符号序列的长度:; cintemp;//4 length=2*temp; cout请依次输入信源符号:; coutendl; for(i=0;ilength;i++) cinxinyuan[i];//00 01 10 11 cout请依次输入信源概率:; coutendl; for(i=0;ilength/2;i++) cinp[i];//0.1 0.4 0.2 0.3 cout相应累加概率:endl; for(i=0;ilength/2;i++) { //求信源符号累加概率 if(i==0) lp[i]=0; else lp[i]=lp[i-1]+p[i-1]; coutlp[i] ; } coutendl; for(;;) { cout请选择您要进行的工作方式(0-编码,1-为译码):; cinn; if(n==0) { //选择编码 int length1; cout请输入要进行算术编码的码字序列的长度:; cintemp;

文档评论(0)

cxiongxchunj + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档