首页 > 化工知识 > 【图像识别】基于模板匹配实现花朵分类matlab代码

【图像识别】基于模板匹配实现花朵分类matlab代码

时间:2021-12-11 来源: 浏览:

【图像识别】基于模板匹配实现花朵分类matlab代码

天天Matlab
天天Matlab

TT_Matlab

每天分享一点Matlab资料,一起成长进步。需要定制程序添加qq1575304183

收录于话题 #图像处理matlab源码 286个 内容

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.

部分理论引用网络文献,若有侵权联系博主删除。

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐