% function main_color(mo)
%利用颜色进行图像的匹配
%-选取第?幅图像
%-要求mo<=num
mo = 5;
num=20;%图片总数量
%设定直方图距离
distance_const=0.8;
%设定形状匹配相似度
similar_const=0.5;
close all;
%获取第一幅图像
%*************
sname='E:\MATLAB71\work\新建文件夹w\素材库\';%统一修改存储位置,修改路径时只需在此步修改
ss=[sname,num2str(mo),'.jpg']; %打开待匹配图像
f1=open_img(ss); %求待匹配图像的累计直方图
%选择其它待匹配图像
distance=zeros(1,num);
for j=1:num
sl=[sname,num2str(j),'.jpg']
f2=open_img(sl);
%进行直方图的匹配
d=zeros(1,256);
for ii=1:256
d(ii)=(sqrt((f1(ii)-f2(ii)).^2));
end
distance(j)=sum(d);
end
distance_num=mo;
for j=1:num
if distance(j)>0
if distance(j)<=distance_const
distance_num=[distance_num,j];
end
end
end
%**************************************************************************
%****
disp('采用直方图匹配,在给定的距离值以内的图片名称数为:');
distance_num
disp('采用直方图匹配,在给定的距离值以内的图片数目为:');
length(distance_num)
%**************************************************************************
%****
figure(1)
num = length(distance_num); %查找到的累积直方图匹配的图像个数
ref =[sname,num2str(mo),'.jpg']; %待检索的图像
ref_img = imread(ref); %打开图像
subplot(num+1,2,1);
imshow(ref_img);
title('待匹配图像')
h1=IMHISTS(ref_img); %对原图像求取直方图
subplot(num+1,2,2);
bar(h1,0.075,'b');
axis([0 255 0 15000]);
title('待匹配图像的直方图');
for i = 1:num
match = [sname,num2str(distance_num(i)),'.jpg']; %数据库图像
match_img = imread(match); %打开图像
subplot(num+1,2,2*i+1);
imshow(match_img);
ttxt=sprintf('第%d匹配图像',i);title(ttxt);
h2=IMHISTS(match_img); %对匹配图像求取直方图
subplot(num+1,2,2*i+2);
bar(h2,0.075,'b');
axis([0 255 0 15000]);
ttxt=sprintf('第%d匹配图像直方图',i);title(ttxt);
end
similar = ones(1,num);
rec_tang_1=center_rectangle(ref_img)
for i = 1:num
match = [sname,num2str(distance_num(i)),'.jpg'];%数据库图像
match_img = imread(match); %打开图像
rec_tang = center_rectangle(match_img)
for j = 1:6
similar(i) = similar(i) * (1- abs(rec_tang_1(j)-rec_tang(j)) / (rec_tang_1(j)+rec_tang(j)) );
end
end
similar_num=mo;
for i=1:num
if abs(i-mo)>0
if similar(i)<=similar_const
similar_num=[similar_num,i];
end
end
end
%**************************************************************************
%****
disp('采用形状匹配,在给定的距离值以内的图片名称数为:');
similar_num
disp('采用形状匹配,在给定的距离值以内的图片数目为:');
length(similar_num)
%**************************************************************************
%****
num=length(similar_num);
figure(2)
for i = 1:num
match = [sname,num2str(similar_num(i)),'.jpg']; %数据库图像
match_img = imread(match); %打开图像
subplot(num,1,i);
imshow(match_img);
ttxt=sprintf('第%d匹配图像',i);title(ttxt);
end
基于内容(颜色和形状特征)的图像检索
4星 · 超过85%的资源 需积分: 16 122 浏览量
2008-09-05
19:07:57
上传
评论 13
收藏 4KB RAR 举报
szulhh
- 粉丝: 1
- 资源: 2
最新资源
- xyctf:从入门到精通的实用指南.zip
- mmqrcode1714153659780.png
- Screenshot_2024-04-27-06-08-58-486_com.baidu.xin.aiqicha.jpg
- 基于Javaweb+Tomcat+MySQL的大学生公寓管理系统+sql文件.zip
- 实训作业基于javaweb的订单管理系统源码+数据库+实训报告.zip
- 多机调度问题贪心算法基于最小堆和贪心算法求解多机调度问题.zip
- 基于同态加密技术的匿名电子投票系统源码.zip
- Pyqt5项目框架-PyQt项目开发实践
- 基于C通过MQTT的智能农业大棚管理系统(本科毕业设计)
- python+CNN的网络入侵检测算法源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
- 5
前往页