- 1、本文档共75页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字图像处理及应用(MATLAB)第8章
(a)图像压缩 (3)利用DCT变换进行图像压缩。 clear,clc close all I=imread(cameraman.tif); I=im2double(I); T=dctmtx(8); B=blkproc(I, [8,8],P1*x*P2,T,T);%将图像分为8块 mask=[1 1 1 1 0 0 0 0;1 1 1 0 0 0 0 0;1 1 0 0 0 0 0 0;1 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0]; B2=blkproc(B,[8 8],P1.*x,mask); I2=blkproc(B2,[8 8],P1*x*P2,T,T); %求逆离散余弦变换 imshow(I) figure,imshow(I2) 实验结果如图所示: (a)原始图像 (b)解压缩图像 实验结果 4、程序设计部分 (1)对图像进行小波分解后,会得到一系列不同分辨率的子图像,表征图像最主要的部分是低频部分,高频部分的大部分数据接近于0,因此可以利用小波分解去掉图像的高频部分,保留图像的低频部分来进行图像数据压缩。请利用二维小波变换对图像进行编码。(提示:首先利用wavedec2函数对图像进行小波分解,然后利用appcoef2函数提取低频系数,最后利用函数wcodemat进行量化编码。) (2)假设信源符号为 ,这些符号出现的概率分别为,编程实现对信源符号cadacdb进行算术编码和解码。 8.6 图像特征提取实验 1.实验目的 (1)了解提取图像特征的目的和意义。 (2)掌握MATLAB中常用的提取图像特征的函数使用方法。 (3)掌握图像的形状特征、纹理特征的算法原理。 2、实验中所用部分函数介绍 bweuler 功能: 计算二进制图像的欧拉数。 格式: eul = bweuler(BW,n) 说明:n为4或8,代表4连通或8连通。 3、实验内容示例部分 (1)计算图像的圆形度 img_dst=imread(coins.png); img_dst=im2bw(img_dst); [x,y]=size(img_dst); BW = bwperim(img_dst,8);%提取二值图像边缘 P1=0; P2=0; Ny=0; % 记录垂直方向连续周长像素点的个数 for i=1:x for j=1:y if (BW(i,j)0) P2=j; if ((P2-P1)==1) % 判断是否为垂直方向连续的周长像素点 Ny=Ny+1; end P1=P2; end end end %检测水平方向连续的周长像素点 P1=0; P2=0; Nx=0; %记录水平方向连续的周长像素点 for j=1:y for i=1:x if (BW(i,j)0) P2=i; if ((P2-P1)==1) % 判断是否为水平方向连续的周长像素点 Nx=Nx+1; end P1=P2; end end end SN=sum(sum(BW)); % 计算周长像素点的总数 Nd=SN-Nx-Ny; %计算奇数码的链码总数 L=sqrt(2)*Nd+Nx+Ny; % 计算周长 A=bwarea(img_dst); % 计算目标面积 C=(L*L)/(4*pi*A)% 计算圆形度 Matlab运行结果:C =25.3617 (2) 图像特征分析中,能量、相关度、对比度、同质性是四个重要信息,以其中能量为例,计算图像特征中能量信息。 img_dst=imread(coins.png); glcms=graycomatrix(img_dst);%求图像灰度共生矩阵 stats=graycoprops(glcms,Energy);%计算能量 con=[stats.Energy] matlab运行结果如下: con =0.3987 (3)计算图像的质心坐标 img_dst=imread(lena.bmp); m = logical(img_dst); n = regionprops(m, centroid); centroids = cat(1, n.Centroid); imshow(img_dst); title(图像的质心坐标); hold on plot(centroids(:,1), centroids(:,2), r*)
文档评论(0)