資源簡介
圖片的感興趣區域的提取matlab實現
直接運行go函數即可運行
可視化操作

代碼片段和文件信息
clc;clear;close?all;
imagefile=‘c‘;
src=imread(strcat(‘imag\‘imagefile‘.jpg‘));
%分塊
[heightwidth~]=size(src);
if(height*width<4e+5)scale=4;
else?scale=8;
end
temp=mod(widthscale);width=width-temp;
temp=mod(heightscale);height=height-temp;
w=width/scale;h=height/scale;
r=double(src(1:height1:width1));g=double(src(1:height1:width2));b=double(src(1:height1:width3));
ravrg=zeros(hw);%分塊均值陣紅
gavrg=zeros(hw);%分塊均值陣綠
bavrg=zeros(hw);%分塊均值陣藍
color=zeros(hw);%分塊顏色陣
colorscale=0;%顏色空間大小
largestscale=100;%最大顏色空間大小
eps=32;%顏色差別閾值
step=9;%濾波窗口
colorspace=repmat([r(11)g(11)b(11)0]largestscale1);colorscale=1;
for?countw=1:w
????for?counth=1:h
????????ravrg(counthcountw)=mean(mean(r(counth*scale-(scale-1):counth*scalecountw*scale-(scale-1):countw*scale)));
????????gavrg(counthcountw)=mean(mean(g(counth*scale-(scale-1):counth*scalecountw*scale-(scale-1):countw*scale)));
????????bavrg(counthcountw)=mean(mean(b(counth*scale-(scale-1):counth*scalecountw*scale-(scale-1):countw*scale)));
????????for?count3=1:colorscale
????????????if(?all(abs([ravrg(counthcountw)-colorspace(count31)gavrg(counthcountw)-colorspace(count32)...
????????????????bavrg(counthcountw)-colorspace(count33)]) ????????????????color(counthcountw)=count3;colorspace(count34)=colorspace(count34)+1;break;
????????????else?if(colorscale==count3?&&colorscale ????????????????????colorscale=colorscale+1;colorspace(count3+1:)=[ravrg(counthcountw)gavrg(counthcountw)bavrg(counthcountw)1];
????????????????????color(counthcountw)=count3+1;break;
????????????????end
????????????end
????????end
????end
end
delta=0.005;
temp=1:colorscale;
colorarray=temp(colorspace(:4)>delta*h*w);%取有效顏色
ratio=zeros(length(colorarray)25);
%開窗
hh=floor(h/8);ww=floor(w/8);j=1;
for?counth=ceil(0.0375*h):ceil(h/5):h+1-hh
????for?countw=ceil(0.0375*w):ceil(w/5):w+1-ww
????????for?i=1:length(colorarray)
????????????ratio(ij)=sum(sum(color(counth:counth+hh-1countw:countw+ww-1)==colorarray(i)));
????????end
????????j=j+1;
????end
end
H=[-2-1-0.5-1-2;
????-101.50-1;
????-0.51.51.51.5-0.5;
????-101.50-1;
????-2-1-0.5-1-2;];
H=reshape(H251);
result=ratio*H./colorspace(colorarray4);
%epsrslt=max(0.6*max(result)+0.4*min(result)mean(result));%mean([mean(result(result<0))mean(result(result>0))]);
epsrslt=min(0.7*max(result)+0.3*min(result)0.1);
result=colorarray(result>epsrslt);
enable=zeros(1colorscale);
for?i=1:length(result)
????enable(result(i))=1;
end
[bhbw]=size(color);
btarget=255*ones(heightwidth3);
for?counth=1:bh
????for?countw=1:bw
????????temp=color(counthcountw);
????????if(temp)
????????????if(enable(temp))
????????????????btarget(counth*scale-(scale-1):counth*scalecountw*scale-(scale-1):countw*scale:)=...
????????????????????src(counth*scale-(scale-1):counth*scalecountw*scale-(scale-1):countw*scale:);
????????????end
?????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3121??2011-12-30?13:59??matlab\a.m
?????文件??????11501??2011-12-30?13:55??matlab\go.asv
?????文件???????9803??2012-05-30?20:10??matlab\go.fig
?????文件??????11510??2011-12-30?13:57??matlab\go.m
?????文件??????17147??2011-12-20?21:26??matlab\imag\213.jpg
?????文件??????16560??2011-12-20?21:26??matlab\imag\220.jpg
?????文件??????21274??2011-12-20?21:26??matlab\imag\242.jpg
?????文件???????9144??2011-11-20?22:53??matlab\imag\b.jpg
?????文件??????33500??2011-11-20?22:54??matlab\imag\c.jpg
?????文件??????94577??2011-11-20?22:53??matlab\imag\d.jpg
?????文件??????23930??2011-11-20?22:55??matlab\imag\e.jpg
?????文件???????1446??2011-12-30?13:55??matlab\loadimage.asv
?????文件???????1445??2011-12-30?14:00??matlab\loadimage.m
?????文件???????4954??2011-12-20?21:26??matlab\meanshiftseg.m
?????文件???????1912??2011-12-20?21:26??matlab\MSfilter.m
?????文件????????266??2011-12-20?21:26??matlab\readme.txt
?????目錄??????????0??2011-12-30?13:58??matlab\imag
?????目錄??????????0??2011-12-30?13:58??matlab
-----------?---------??----------?-----??----
???????????????262090????????????????????18
評論
共有 條評論