matlab代码-基于纹理的图片比较

上传人:ss****gk 文档编号:209184493 上传时间:2021-11-09 格式:DOC 页数:5 大小:101.13KB
返回 下载 相关 举报
matlab代码-基于纹理的图片比较_第1页
第1页 / 共5页
matlab代码-基于纹理的图片比较_第2页
第2页 / 共5页
matlab代码-基于纹理的图片比较_第3页
第3页 / 共5页
matlab代码-基于纹理的图片比较_第4页
第4页 / 共5页
matlab代码-基于纹理的图片比较_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《matlab代码-基于纹理的图片比较》由会员分享,可在线阅读,更多相关《matlab代码-基于纹理的图片比较(5页珍藏版)》请在金锄头文库上搜索。

1、/*4* *1* *1 *1* *1*1* *1* *1 *& *1*1 *1 *4*1 *1*1*1*A* *1* *1*1*1* *1* *t *4*1 *1* *!- *A* *1 *1 *1*4 *1* *1 *1*1*1 *!- *& *1*1Kz/,卜 7,卜 |、,卜 |* |,卜 1、| 1*,卜 1、| 、|* | | 、,卜,卜 | 1* 、,卜 7* T* 1* 、,卜 1*,卜,卜、,卜、,卜 J*1* 、,卜,卜 1* 、,卜 J 1*,卜,卜1* 、7*、,卜%图像检索一一纹理特征%基于共生矩阵纹理特征提取,d=l,O=O ,45 ,90 ,135共四个矩阵 %所用

2、图像灰度级均为256 %参考基于颜色空问和纹理特征的图像检索% function : T=Texture(Image)%Image:输入图j象数据%T:返回八维纹理特征行向量 f! X1 *1*!*1*! l *1* *1* *J:. tXX .1* !* *2!:.t :靡Xt *2*X *1* *f*X 1 *1* !*】*1*Tw T* Tw Tw Tw 7 T* TwTw * Tw TwT* Twv Tw Tw TT* Tw TV X Tw TwTwT* T*T* Tw iV 7 TwGray = imreadCEA 微观图146stamp210X2.JPG);M=size(Gray,

3、l);N=size(Gray,2);%M = 256;%N = 256;0/0%1.将芥颜色分量转化为灰度%Gray = double(0.3*Image(:,:,l)+0.59*Image(:,:,2)+0.11*Image(:,:,3);%2.为了减少计算量,对原始图像灰度级压缩,将Gray量化成16级 0/0for i = 1:Mforj = 1:Nfor n = 1:256/16if (n-1)*16=Gray(i,j)&Gray(i,j)=(n-1)*16+15 Gray(ij) = n-l;endendendend%3.计算四个共生矩阵P,取距离为1,角度分别为0,45,90,13

4、5%P = zeros(16,16,4);for m = 1:16for n = 1:16for i = 1:M forj = 1:Nif Gray(ij)=m-1if jN&Gray(i,j+l )=n-1P(m,n,l) = P(m,n,l)+1; endif i1 &jN&Gray(i-1,j+1 )=n-1 P(m,n,2) = P(m,n,2)+1;endif iM&Gray(i+l,j)=n-1P(m,n,3) = P(m,n,3)+1;endif iM&j N&Gray (i+1 ,j+1 )=n-1 P(m,n,4) = P(m,n,4)+1;endendendendP(n,m

5、,l) = P(m,n,l);P(n,m,2) = P(m,n,2);P(n,m,3)二 P(m,n,3);P(n,m,4) = P(m,n,4); if m=nP(m,n,:) = P(m,n,:)*2; endendend%对共生矩阵归一化%for n = 1:4P(:,:,n) = P(:,:,n)/sum(sum(P(:,:,n); end%4.对共生矩阵计算能量、熵、惯性矩、相关4个纹理参数 o/oH = zeros(l,4);I = H;Ux = H; Uy = H;deltaX= H; delta Y = H;C=H;for n = 1:4E(n) = sum(sum(P(:,:

6、,n).A2); %能量 for i = 1:16forj= 1:16if P(i,j,n)=0HOi) = -P(i,j,n)*log(P(i,j,n)+H(n); %熵 endI(n) = (i-j)A2 叩(i,j,n)+I(n); % 惯性矩Ux(n) = i*P(i,j,n)+Ux(n); %相关性中 H x Uy(n) = j*P(i,j,n)+Uy(n); %相关性中 u yendendendfor n = 1:4for i = 1:16forj= 1:16deltaX(n) = (i-Ux(n)A2*P(i,j,n)+deltaX(n); %相关性中 o x deltaY(n)

7、 = (j-Uy(n)A2*P(i,j,n)+deltaY(n); %相关性中 o yendendC(n) = (C(n)-Ux(n)*Uy(n)/deltaX(n)/deltaY(n); %相关性 end%求能量、嫡、惯性矩、相关的均值和标准差作为最终8维纹理特征 0/0T(l) = mean(E);T(2) = mean(H);T(3) = mean(I);T(4) = mcan(C);imgl=TGrayl = imread(D:i(观图146stamp210X3.JPG);M=sizc(Grayl,l);N=size(Grayl,2);%M = 256;%N = 256;o/o%1.将

8、芥颜色分量转化为灰度%Gray = double(0.3*Image(:,:,l)+0.59*Image(:,:,2)+0.1 PImage(:,:,3); o/o%2.为了减少计算量,对原始图像灰度级压缩,将Gray量化成16级 o/ofor i = 1:Mforj = 1:Nfor n = 1:256/16if (n-l)*l 6=Gray l(i,j)&Grayl(i,j)=(n-1 )* 16+15 Grayl(i,j) = n-1;endendendend%3.计算四个共生矩阵P,取距离为1,角度分别为0,45,90,135%P = zeros(16,16,4);for m = 1:

9、16for n = 1:16for i = 1:M forj = 1:Nif Grayl(i,j)=m-1if jl &jN&Grayl(i-1 ,j+1 )=n-1 P(m,n,2) = P(m,n,2)+1;endif iM&Grayl(i+1 ,j)=n-1 P(m,n,3) = P(m,n,3)+1;endif iM&jN&Grayl(i+1 ,j+1 )=n-1 P(m,n,4) = P(m,n,4)+1;endendendendP(n,m,l) = P(m,n,l);P(n,m,2) = P(m,n,2);P(n,m,3) = P(m,n,3);P(n,m,4) = P(m,n,4

10、); if m=nP(m,n,:) = P(m,n,:)*2; endendend%对共生矩阵归一化%for n = 1:4P(:,:,n) = P(:,:,n)/sum(sum(P(:,:,n); end%4.对共生矩阵计算能量、熵、惯性矩、相关4个纹理参数 o/oHl = zeros(l,4);II = Hl;Ux = Hl; Uy = Hl;deltaX= Hl; deltaY = Hl;Cl =H1;for n = 1:4El(n) = sum(sum(P(:,:,n).A2); %能量 for i = 1:16for j = 1:16ifP(i,j,n)=0Hl(n) = -P(i,

11、j,n)*log(P(i,j,n)+Hl(n); %嫡 endIl(n) = (i-j)A2*P(i,j,n)+Il ;% 惯性矩Ux(n) = i*P(i,j,n)+Ux(n); %相关性中 U x Uy(n) =j*P(ij,n)+Uy(n); %相关性中 u yendendendfor n = 1:4for i = 1:16forj= 1:16deltaX(n) = (i-Ux(n)A2*P(i,j,n)+deltaX(n); %相关性中 o x deltaY(n) = (j-Uy(n)A2*P(i,j,n)+deltaY(n); %相关性中 o y Cl(n) = i*j*P(i,j,

12、n)+Cl(n);endendCl(n) = (Cl(n)-Ux(n)*Uy(n)/deltaX(n)/deltaY(n); %相关性end0/0%求能量、嫡、惯性矩、相关的均值和标准差作为最终8维纹理特征%Tl(l) = mean(El);Tl(2) = mean(Hl);Tl(3) = mean(Il);Tl(4) = mean(Cl);img2=Tlrange=norm(img 1 -img2)A2Gray = imread(D:微观图146stampl10Xl.JPG);subplot(2,2,3);imshow(Gray);title(图像 r);Grayl = imrcadCDAi观图146stamp210X3.JPG1);subplot(2,2,4);imshow(Grayl);titleC图像 2);s叩title(strcat(距离为:num2str(range); if range0.001 &range0.01 & range0.02a=randint(l,l,0 30)gtext(两张图像不是同一张图像)endsuptitle(strcat(相似度为:*,num2str(a);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号