资源简介
利用matlab实现基于颜色的内容提取,对100副图片进行分析,找出相互配对的图形
代码片段和文件信息
clc
clear
% tic
%=====================================================================
%参数初始化
q=0;%0,不量化,非0时,将数值量化为16的整数倍值
rbnum=16;%指定分块个数
cbnum=16;
distancetype=0;%0:绝对值的和 1:欧几里德距离,
histtype=1;%histtype:直方图(0)与累积直方图(1)
%---------------
imagetype=‘bmp‘;% 图片类型
imagesum=100;%要检索的图片库中图片的数目
imageadress=‘F:\张霖\多媒体\大作业要求\颜色作业图库\‘;
%=====================================================================
if q==0
len=256;
else
len=16;
end
Lhist=zeros(imagesumrbnumcbnumlen);
for number=1:imagesum
I=imread([imageadressnum2str(number)‘.‘imagetype]);
[mn]=size(I(::1));
L=rgb2gray(I);
if q~=0
L=floor(double(L)*len/256);
end
for i=1:rbnum
for j=1:cbnum
rs=floor((i-1)*m/rbnum+1);%获得子块行位置向量的起止
re=floor(i*m/rbnum);
cs=floor((j-1)*n/cbnum+1);%获得子块列位置向量的起止
ce=floor(j*n/cbnum);
LS=L(rs:recs:ce);
sm=(re-rs+1);
sn=(ce-cs+1);
Lhist(numberij:)=hist(reshape(LS1sm*sn)0:len-1)/(sm*sn);%计算直方图
end
end
end
if histtype==1
for i=2:len
Lhist(:::i)= Lhist(:::i)+ Lhist(:::i-1);
end
end
%toc
%=====================================================================
%读入待检索的图像
reply = input(‘Do you want to search? Y/N [Y]: ‘ ‘s‘);
while reply == ‘Y‘
searchnum = input(‘Which one do you want to search? (1~100) [1]: ‘);
if isempty(searchnum)
searchnum = 1;
end
tic
d=zeros(1001);
for k=1:imagesum
dd=zeros(rbnumcbnum);
for i=1:rbnum
for j=1:cbnum
if distancetype==0
dd(ij)=sum(abs(Lhist(searchnumij:)-Lhist(kij:)));
else
dd(ij)=sqrt(sum(abs(Lhist(searchnumij:)-Lhist(kij:)).^2));
end
end
end
d(k)=sum(sum(dd.^2))/(rbnum*cbnum);
end
[imagesortdindex]=sort(d);
%======================================================================
%显示检索结果
rows=2;
cols=3;
figure
subplot(rowscols1);
J=imread([imageadressnum2str(searchnum)‘.‘imagetype]);
imshow(rgb2gray(J));
title(‘待检索图象灰度图‘);
%按照相似度从小到大显示图像
for i=1:rows*cols-1%只显示前rows*cols-1个距离最小的图片
J=imread([imageadressnum2str(dindex(i))‘.‘imagetype]);
%J=imread([‘C:\imagesearches\imagedatabase1\‘image]);
subplot(rowscolsi+1)imshow(J);
title([‘No.‘num2str(dindex(i))‘d=‘num2str(imagesort(i))]);
end
% toc
reply = input(‘Do you want to search? Y/N [Y]: ‘ ‘s‘);
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4081 2009-06-15 11:27 sim_main1.m
文件 2855 2009-06-23 09:32 sim_main.m
----------- --------- ---------- ----- ----
6936 2
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论