function [II] = bandremovebackgroundm(I) % clc;close all; %>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> L_vpp=sum(I,1); L_vpp=500*(L_vpp-min(L_vpp))/(max(L_vpp)-min(L_vpp)); P=4; % P Equal to half of Averaged Range - width of Lane is 40 pixels L_vpp1=L_vpp; % S_vpp is signal that removed noise for i=P+1:size(L_vpp,2)-P L_vpp(i)=sum(L_vpp1(i-P:i+P))/9; end %>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> L_valley_vpp=-1*(L_vpp-max(L_vpp)); SlopeThreshold=0.005; SlopeThreshold_valley=0.00001; AmpThreshold=0; smoothwidth=2; peakgroup=5; smoothtype=5; P=peakfind([1:size(L_vpp,2)],L_vpp,SlopeThreshold,AmpThreshold,smoothwidth,peakgroup,smoothtype); P_valley=peakfind([1:size(L_valley_vpp,2)],L_valley_vpp,SlopeThreshold_valley,AmpThreshold,smoothwidth,peakgroup,smoothtype); P_valley(:,3)=-1*(P_valley(:,3)-max(L_vpp)); P_valley(P_valley(:,2)>500,:)=[]; P_valley(P_valley(:,2)<0,:)=[]; L_vpp(1:ceil(P_valley(1,2)))=0; L_vpp(fix(P_valley(end,2)):end)=0; %>>>>>>>>>>>>>>>>>>>>>> % figure; % subplot(2,1,1) % imshow(I) % subplot(2,1,2) % area([1:size(L_vpp,2)],L_vpp,'FaceColor',[1 0 0]);hold on;plot(P(:,2),P(:,3),'*k'); % area(P_valley(:,2),P_valley(:,3),'FaceColor','y'); % plot(P_valley(:,2),P_valley(:,3),'*y'); %>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> % Subtracting down envelope of signal from VPP signal % P_valay is valley of VPP signal that it is result of peakfind function % L_vpp is VPP of signal for i=1:size(P_valley,1)-1 m=(P_valley(i+1,3)-P_valley(i,3))/(P_valley(i+1,2)-P_valley(i,2)); L_vpp_envelope=m*([round(P_valley(i,2)):round(P_valley(i+1,2))-1]-P_valley(i,2))+P_valley(i,3); L_vpp(round(P_valley(i,2)):round(P_valley(i+1,2))-1)=L_vpp(round(P_valley(i,2)):round(P_valley(i+1,2))-1) - L_vpp_envelope; end for j=1:numel(L_vpp) if L_vpp(j)<10 L_vpp(j)=0; end end % area(L_vpp,'FaceColor',[0 1 0]); %>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> II=repmat(L_vpp,75,1); % figure; % subplot(2,1,1) % imshow(I) % subplot(2,1,2) % imshow(uint8(II)) % clc % close all