求救!帮忙看一段MATLAB图像处理的程序

求救!帮忙看一段MATLAB图像处理的程序,第1张

X=0%清空X.

map=0

[X,map]=imread('lena256x256x8.bmp')%读取图像

p=imfinfo('lena256x256x8.bmp')%读取图像的属性

s=2^p.BitDepth-1%计算图像的最大深度,如8位图像为255.

%-------------------------------------------------------------------------

%简化的图像增强算法:简化Pmn及T变换的算法为:

Y=0%清空Y.

A=0%清空A.

Y=double(X)./s%计算P(m,n),相当于求G(x)

%模糊变换算法

for m=1:p.Height

for n=1:p.Width

if(Y(m,n)<0.5)

A(m,n)=2*Y(m,n)^2

else

A(m,n)=1-2*(1-Y(m,n))^2

end

end

end

B=0%清空B.

B=uint8(A*(2^p.BitDepth-1))%相当于求逆G-1(x')

%%%区域减影增强算法

P=0%清空P.

d=0.00005%%%%设定冗余度

k=2%%%%设定修正参数

for m=1:p.Height

for n=1:p.Width

if(Y(m,n)-A(m,n)>d)

P(m,n)=Y(m,n)+k*(Y(m,n)-A(m,n))

end

if(Y(m,n)-A(m,n)<(-d))

P(m,n)=Y(m,n)+(-k)*(Y(m,n)-A(m,n))

else

P(m,n)=Y(m,n)

end

end

end

B=0%清空B.

B=uint8(P*(2^p.BitDepth-1))%相当于求逆G-1(x')

%%%图像增强几种方法效果对比

I=imread('lena256x256x8.bmp') %读入图像

I=double(I) %变成双精度

K1=filter2(fspecial('average',5),I)/255 %进行滤波

K2=imsubtract(I,K1)

K2=immultiply(K2,0.5)

K3=imadd(I,K2)

K2=uint8(K2) %转成8位数据

K3=uint8(K3)

I=uint8(I)

figure

title('图像增强几种方法效果对比')

subplot(2,2,1)imshow(I)title('原始图像')

subplot(2,2,2)imshow(K1)title('低通滤波图像')

subplot(2,2,3)imshow(K3)title('线性反锐化掩膜图像')

subplot(2,2,4)imshow(B)title('区域减影增强图像')

有图像检索的算法,可以实现难度不太大,你可以参考《图像低层特征提取与检索技术》还有《基于内容的图像检索技术》,可先用matlab软件仿真,图像检索的基本原理就是:

(1) 从图像数据库中通过特征选择算法提取主要的显著特征(颜色、边缘、直方图)作为图像的索引;

(2) 根据提取的特征建立特征和图像数据库之间的映射关系;

(3) 检索算法的设计,可以通过待检索图像和图像数据库中的图像特征之间的相似性和距离进行;

(4) 找出相似性和距离最近的图像作为检索结果;

还有你如果是取图像中的部分图像作为检索内容,这个难度就有些大了,不如就整张检索容易实现,因为你要检索局部内容就需要在图像库中的每幅图像中的局部提取特征。

希望能帮到你!

看我回答的如此真诚,最好给我多加点分吧


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12038222.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存