【图像识别】基于模板匹配实现花朵分类matlab代码-米乐app官方
【图像识别】基于模板匹配实现花朵分类matlab代码
tt_matlab
每天分享一点matlab资料,一起成长进步。需要定制程序添加qq1575304183
1 简介
基于直方图实现花朵分类代码。
2 部分代码
%图一:利用直方图进行图像的匹配 %图二:利用形状进行图像的匹配 %交给你们啦~~~~ %-要求mo<=num clear ; mo = 1 ; %-选取第?幅图像 num = 5 ; %图片总数量 distance_const = 0.8 ; %设定直方图距离 similar_const = 0.5 ; %设定形状匹配相似度 close all ; %获取第一幅图像 sname = ’’ ; %统一修改存储位置,修改路径时只需在此步修改 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 4000 ]); 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 4000 ]); 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
3 仿真结果
4 参考文献
[1]王宪保, 杨敬, 肖本督,等. 一种基于机器学习的花朵种类识别方法:, cn110458200a[p]. 2019.
部分理论引用网络文献,若有侵权联系博主删除。
-
2020-08-07
-
2020-05-29
-
2020-08-03
-
2020-08-06
-
2020-06-04
-
2020-08-31
-
2020-08-06
-
2021-10-15
-
2020-06-03
-
2020-07-03