⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 draw_faces2.m

📁 这是一个去马赛克工具软件
💻 M
字号:
function [newI,newI2]=draw_faces2(Results,Guess,Irgb,Correct_size,noface)
%This function creates two images. In one it just draws green boxes around
%the faces. Or red boxes if there are no faces. In the other one it draws 
%in addition the raw guesses.

%Calculate the average template size.
T=mean(Correct_size);
newI=Irgb;

%If there are faces draw boxes in green, if not in red.
if (noface==1)
    c1=1;
    c0=2;
else
    c1=2;
    c0=1;
end

%The square is bigger because the templates do not show the whole head and
%it looks nicer.
sY2=round(T/2*1.4);
sX2=round(3*T/8*1.3);
N=size(Results,1);

%For each coordinate change the values for each side of the rectangle
for k=1:N
    x=round(Results(k,3));
    y=round(Results(k,2));
    newI((y-sY2):(y+sY2),(x-sX2)-1:(x-sX2)+1,c0)=zeros(size(newI((y-sY2):(y+sY2),(x-sX2)-1:(x-sX2)+1,1)));   
    newI((y-sY2):(y+sY2),(x-sX2)-1:(x-sX2)+1,c1)=255.*ones(size(newI((y-sY2):(y+sY2),(x-sX2)-1:(x-sX2)+1,2)));
    newI((y-sY2):(y+sY2),(x-sX2)-1:(x-sX2)+1,3)=zeros(size(newI((y-sY2):(y+sY2),(x-sX2)-1:(x-sX2)+1,3)));
    
    newI((y-sY2):(y+sY2),(x+sX2)-1:(x+sX2)+1,c0)=zeros(size(newI((y-sY2):(y+sY2),(x+sX2)-1:(x+sX2)+1,1)));   
    newI((y-sY2):(y+sY2),(x+sX2)-1:(x+sX2)+1,c1)=255.*ones(size(newI((y-sY2):(y+sY2),(x+sX2)-1:(x+sX2)+1,2)));
    newI((y-sY2):(y+sY2),(x+sX2)-1:(x+sX2)+1,3)=zeros(size(newI((y-sY2):(y+sY2),(x+sX2)-1:(x+sX2)+1,3)));
    
    newI((y-sY2)-1:(y-sY2)+1,(x-sX2):(x+sX2),c0)=zeros(size(newI((y-sY2)-1:(y-sY2)+1,(x-sX2):(x+sX2),1)));   
    newI((y-sY2)-1:(y-sY2)+1,(x-sX2):(x+sX2),c1)=255.*ones(size(newI((y-sY2)-1:(y-sY2)+1,(x-sX2):(x+sX2),2)));
    newI((y-sY2)-1:(y-sY2)+1,(x-sX2):(x+sX2),3)=zeros(size(newI((y-sY2)-1:(y-sY2)+1,(x-sX2):(x+sX2),3)));
    
    newI((y+sY2)-1:(y+sY2)+1,(x-sX2):(x+sX2),c0)=zeros(size(newI((y+sY2)-1:(y+sY2)+1,(x-sX2):(x+sX2),1)));   
    newI((y+sY2)-1:(y+sY2)+1,(x-sX2):(x+sX2),c1)=255.*ones(size(newI((y+sY2)-1:(y+sY2)+1,(x-sX2):(x+sX2),2)));
    newI((y+sY2)-1:(y+sY2)+1,(x-sX2):(x+sX2),3)=zeros(size(newI((y+sY2)-1:(y+sY2)+1,(x-sX2):(x+sX2),3)));
end

newI2=newI;

for k=1:N
    x=round(Results(k,3));
    y=round(Results(k,2));
    newI2((y-2):(y+2),(x-2):(x+2),1)=zeros(size(newI((y-2):(y+2),(x-2):(x+2),1)));   
    newI2((y-2):(y+2),(x-2):(x+2),3)=255.*ones(size(newI((y-2):(y+2),(x-2):(x+2),3)));
    newI2((y-2):(y+2),(x-2):(x+2),2)=zeros(size(newI((y-2):(y+2),(x-2):(x+2),2)));
    
    newI2((y-2):(y+2),(x-2):(x+2),1)=zeros(size(newI((y-2):(y+2),(x-2):(x+2),1)));   
    newI2((y-2):(y+2),(x-2):(x+2),3)=255.*ones(size(newI((y-2):(y+2),(x-2):(x+2),3)));
    newI2((y-2):(y+2),(x-2):(x+2),2)=zeros(size(newI((y-2):(y+2),(x-2):(x+2),2)));
    
    newI2((y-2):(y+2),(x-2):(x+2),1)=zeros(size(newI((y-2):(y+2),(x-2):(x+2),1)));   
    newI2((y-2):(y+2),(x-2):(x+2),3)=255.*ones(size(newI((y-2):(y+2),(x-2):(x+2),3)));
    newI2((y-2):(y+2),(x-2):(x+2),2)=zeros(size(newI((y-2):(y+2),(x-2):(x+2),2)));
    
    newI2((y-2):(y+2),(x-2):(x+2),1)=zeros(size(newI((y-2):(y+2),(x-2):(x+2),1)));   
    newI2((y-2):(y+2),(x-2):(x+2),3)=255.*ones(size(newI((y-2):(y+2),(x-2):(x+2),3)));
    newI2((y-2):(y+2),(x-2):(x+2),2)=zeros(size(newI((y-2):(y+2),(x-2):(x+2),2)));
end

N2=size(Guess,1);

for k=1:N2
    x=round(Guess(k,3));
    y=round(Guess(k,2));
    newI2((y-2):(y+2),(x-2):(x+2),3)=zeros(size(newI((y-2):(y+2),(x-2):(x+2),3)));   
    newI2((y-2):(y+2),(x-2):(x+2),1)=255.*ones(size(newI((y-2):(y+2),(x-2):(x+2),1)));
    newI2((y-2):(y+2),(x-2):(x+2),2)=zeros(size(newI((y-2):(y+2),(x-2):(x+2),2)));
    
    newI2((y-2):(y+2),(x-2):(x+2),3)=zeros(size(newI((y-2):(y+2),(x-2):(x+2),3)));   
    newI2((y-2):(y+2),(x-2):(x+2),1)=255.*ones(size(newI((y-2):(y+2),(x-2):(x+2),1)));
    newI2((y-2):(y+2),(x-2):(x+2),2)=zeros(size(newI((y-2):(y+2),(x-2):(x+2),2)));
    
    newI2((y-2):(y+2),(x-2):(x+2),3)=zeros(size(newI((y-2):(y+2),(x-2):(x+2),3)));   
    newI2((y-2):(y+2),(x-2):(x+2),1)=255.*ones(size(newI((y-2):(y+2),(x-2):(x+2),1)));
    newI2((y-2):(y+2),(x-2):(x+2),2)=zeros(size(newI((y-2):(y+2),(x-2):(x+2),2)));
    
    newI2((y-2):(y+2),(x-2):(x+2),3)=zeros(size(newI((y-2):(y+2),(x-2):(x+2),3)));   
    newI2((y-2):(y+2),(x-2):(x+2),1)=255.*ones(size(newI((y-2):(y+2),(x-2):(x+2),1)));
    newI2((y-2):(y+2),(x-2):(x+2),2)=zeros(size(newI((y-2):(y+2),(x-2):(x+2),2)));
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -