收藏 分销(赏)

数字图像处理实验matlab4.doc

上传人:a199****6536 文档编号:2580215 上传时间:2024-06-01 格式:DOC 页数:12 大小:164.54KB
下载 相关 举报
数字图像处理实验matlab4.doc_第1页
第1页 / 共12页
数字图像处理实验matlab4.doc_第2页
第2页 / 共12页
数字图像处理实验matlab4.doc_第3页
第3页 / 共12页
数字图像处理实验matlab4.doc_第4页
第4页 / 共12页
数字图像处理实验matlab4.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、数字图像处理实验matlab4 作者: 日期:12 个人收集整理 勿做商业用途9,对图3实施正交变换编码和解码(采用离散傅立叶变换)。建议将图3分成4*4的4个子图象。思路:先将图3数据读入模块,显示图像,将图分块进行DFT变换,显示图像,,在进行反变换恢复原数据,在进行哈夫曼编码编码,后解码。原理:傅立叶变换 傅立叶变换是数字图像处理中应用最广的一种变换,其中图像增强、图像复原和图像分析与描述等,每一类处理方法都要用到图像变换,尤其是图像的傅立叶变换.离散傅立叶(Fourier)变换的定义:二维离散傅立叶变换(DFT)为:逆变换为:式中, 在DFT变换对中, 称为离散信号 的频谱,而 称为幅

2、度谱, 为相位角,功率谱为频谱的平方,它们之间的关系为:图像的傅立叶变换有快速算法.下面给出具体的Huffman编码算法。(1)首先统计出每个符号出现的频率,例如S0到S7的出现频率分别为:0.25,0.19,0。08,0.06,0。21,0。02,0.03,0.16 (2)从左到右把上述频率按从大到小的顺序排列。(3)将最小的两个数相加的值表上号,其余的数据不变,然后将得到的数据排序(4)重复(3),直到只有两个数据.(5) 从最后一列概率编码,从而得到最终编码。具体过程如下图所示:概率压缩过程:初始信源信源的消减步骤符号概率 1 2 3 4 5 6S00。25 0.25 0。25 0.25

3、 0。35* 0。4 0。6* 0。21 0。21 0.21 0.25 0.35 0。4 0.19 0。19 0.19 0.21 0。25 0.16 0.16 0。19 0。19 0.08 0。11* 0。16 0。06 0.08 005S40。21S10。19S70.16S20。08S30。06S60.03S50。02表 3-1 哈夫曼概率压缩过程编码过程:初始信源对消减信源的赋值符号概率 编码 1 2 3 4 5 6S00.25 010.25 01 0.25 01 0。25 01 0。3500 0。4* 1 0.6* 00.21 10 0。21 10 0。21 10 0。25 01 0。3

4、5 00 0。4 10.19 11 0。19 11 0.19 11 0.21 10 0。25 010.16 001 0.16 001 0.19000 0.19 110.08 0001 0。11* 0000 0.16 00010。06 00000 0.08 00010。05 00001S40。21 10S10.19 11S70。16 001S20。08 0001S30。06 00000S60.03 000010S50。02 000011表 3-2 哈夫曼算法编码过程读入图像算法流程初始化统计每种灰度数灰度数排序 此处并没有采用概率排序, 而是采用对灰度像素个数按哈夫曼算法编码 排序,这是因为计算

5、概率无 疑增大了计算量,因此用灰将灰度编码表及原图的编码写入txt 度级的像素个数替代 图31 哈夫曼算法程序流程图程序:clc;clear;close all;A=3 3 4 4 4 4 5 2 4 1 1 2 2 1 5 4 4 3 4 4 4 4 5 2 4 5 2 5 0 3 1 2 1 5 0 3 3 5 6 4 2 3 1 1 2 2 1 2 0 3 6 5 5 7 2 0 3 1 2 2 1 5 0 6; subplot(2,2,1),imshow(A);title(原图); I=double(A);P=A(1:4,1:4);K=fft(P);P1=A(1:4,5:8);K1=f

6、ft(P1);P2=A(5:8,1:4);K2=fft(P2);P3=A(5:8,5:8);K3=fft(P3); for i=1:4 for j=1:4 H(i,j)=K(i,j); endendfor i=1:4 for j=5:8 H(i,j)=K1(i,j-4); endendfor i=5:8 for j=1:4 H(i,j)=K2(i4,j); endendfor i=5:8 for j=5:8 H(i,j)=K3(i-4,j-4); endendsubplot(2,2,2),imshow(H);title(DFT变换后的频域图像); I=H(1:4,1:4);M=ifft(I);

7、I1=H(1:4,5:8);M1=ifft(I1);I2=H(5:8,1:4);M2=ifft(I2);I3=H(5:8,5:8);M3=ifft(I3);for i=1:4 for j=1:4 A1(i,j)=M(i,j); endendfor i=1:4 for j=5:8 A1(i,j)=M1(i,j-4); endendfor i=5:8 for j=1:4 A1(i,j)=M2(i-4,j); endendfor i=5:8 for j=5:8 A1(i,j)=M3(i4,j4); endendsubplot(2,2,3),imshow(A1);title(复原图像);%编码%读入图

8、像,定义结构体,便于存储I=A;pix(8)=struct(huidu,0.0,.。. number,0。0,.。 bianma,);m n l=size(I);fid=fopen(E:学习数字图像处理huffman。txt,w);huffman。txt是灰度级及相应的编码表fid1=fopen(E:学习数字图像处理huff_compara.txt,w);%huff_compara.txt是编码表huf_bac=cell(1,l);for t=1:l% %初始化结构数组 for i=1:8 pix(i)。number=1; pix(i)。huidu=i-1; pix(i).bianma=; e

9、nd %统计每种灰度像素的个数记录在pix数组中 for i=1:m for j=1:n k=I(i,j,t)+1; pix(k).number=1+pix(k).number; end end 按灰度像素个数从大到小排序 for i=1:7 for j=i+1:8 if pix(i).numbersum huffman(i,j)=huffman(i+1,p); p=p+1; else 如果当前要复制的结构体的像素个数小于或等于sum就插入和的结构体 灰度值为1标志这个结构体的number是两种灰度像素的和 huffman(i,j).huidu=1; huffman(i,j)。number=s

10、um; sum=0; huffman(i,j+1:i)=huffman(i+1,j:i-1); break; end end end %开始给每个灰度值编码 for i=1:num1 obj=0; for j=1:i if huffman(i,j)。huidu=-1 obj=j; break; else huffman(i+1,j).bianma=huffman(i,j).bianma; end end if huffman(i+1,i+1)。numberhuffman(i+1,i).number 说明:大概率的编0,小概率的编1,概率相等的,标号大的为1,标号小的为0 huffman(i+1

11、,i+1)。bianma=huffman(i,obj).bianma 0; huffman(i+1,i)。bianma=huffman(i,obj)。bianma 1; else huffman(i+1,i+1)。bianma=huffman(i,obj)。bianma 1; huffman(i+1,i)。bianma=huffman(i,obj).bianma 0; end for j=obj+1:i huffman(i+1,j1)。bianma=huffman(i,j).bianma; end end for k=1:count(t) huf_bac(t,k)=huffman(num,k)

12、; 保存 end end写出灰度编码表for t=1:l for b=1:count(t) fprintf(fid,d,huf_bact,b。huidu); fwrite(fid, ); fprintf(fid,%s,huf_bact,b。bianma); fwrite(fid, ); end fwrite(fid,); end解码%按原图像数据,写出相应的编码,也就是将原数据用哈夫曼编码替代for t=1:l for i=1:m for j=1:n for b=1:count(t) if I(i,j,t)=huf_bact,b.huidu M(i,j,t)=huf_bact,b。huidu;

13、%将灰度级存入解码的矩阵 fprintf(fid1,s,huf_bact,b.bianma); fwrite(fid1, );%用空格将每个灰度编码隔开 break; end end end fwrite(fid1,);%用空格将每行隔开 end fwrite(fid1,%);用%将每层灰度级代码隔开endfclose(fid);fclose(fid1);M=uint8(M);save(M)存储解码矩阵Msubplot(2,2,4),imshow(A);title(解码后图);对应编码:0 0001 1 001 2 10 3 0114 11 5 010 6 00000 7 00001矩阵的编码

14、11 001 001 10 10 001 010 11 ,11 011 11 11 11 11 010 10 ,11 010 10 010 0001 011 001 10 ,001 010 0001 011 011 010 00000 11 ,10 011 001 001 10 10 001 10 ,0001 011 00000 010 010 00001 10 0001 ,011 001 10 10 001 010 0001 00000 ,解码矩阵:M = 3 3 4 4 4 4 5 2 4 1 1 2 2 1 5 4 4 3 4 4 4 4 5 2 4 5 2 5 0 3 1 2 1 5 0 3 3 5 6 4 2 3 1 1 2 2 1 2 0 3 6 5 5 7 2 0 3 1 2 2 1 5 0 6

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服