addgrid.m
来自「用于对天文图像进行去噪和探测」· M 代码 · 共 270 行
M
270 行
%AddGrid.m
%作者:韦海萍;
%日期:2007-8-22;
%用途:根据给定的目标位置,在输入图像中加跟踪框;
function [ImageOut]=AddGrid(I, Height, Width, Xlabel, Ylabel)
if isempty(Xlabel)==0
for num=1:size(Xlabel,2)
Line=Xlabel(num);
Column=Ylabel(num);
%------------- 中心区域 -----------------------
if Line>20 && Line<=Height-20 && Column>20 && Column<=Width-20
%------------- 竖线 ---------------------
for i=Line-20:Line+20
for j=0:2
I(i,Column-20+j)=1;
I(i,Column+20-j)=1;
end
end
for i=Line-17:Line+17
for j=0:2
I(i,Column-17+j)=65535;
I(i,Column+17-j)=65535;
end
end
%-------------- 横线 -----------------------
for j=Column-20:Column+20
for i=0:2
I(Line-20+i,j)=1;
I(Line+20-i,j)=1;
end
end
for j=Column-17:Column+17
for i=0:2
I(Line-17+i,j)=65535;
I(Line+17-i,j)=65535;
end
end
%--------------- 左边缘 -------------------------
elseif Line>20 && Line<=Height-20 && Column<=20
%-------------- 竖线 ----------------------
for i=Line-20:Line+20
for j=0:2
I(i,j+1)=1;
I(i,Column+20-j)=1;
end
end
for i=Line-17:Line+17
for j=0:2
I(i,j+4)=65535;
I(i,Column+17-j)=65535;
end
end
%-------------- 横线 -----------------------
for j=1:Column+20
for i=0:2
I(Line-20+i,j)=1;
I(Line+20-i,j)=1;
end
end
for j=4:Column+17
for i=0:2
I(Line-17+i,j)=65535;
I(Line+17-i,j)=65535;
end
end
%------------------- 右边缘 -----------------------------
elseif Line>20 && Line<=Height-20 && Column>Width-20
%------------- 竖线 ---------------------
for i=Line-20:Line+20
for j=0:2
I(i,Column-20+j)=1;
I(i,Width-j)=1;
end
end
for i=Line-17:Line+17
for j=0:2
I(i,Column-17+j)=65535;
I(i,Width-3-j)=65535;
end
end
%-------------- 横线 -----------------------
for j=Column-20:Width
for i=0:2
I(Line-20+i,j)=1;
I(Line+20-i,j)=1;
end
end
for j=Column-17:Width-3
for i=0:2
I(Line-17+i,j)=65535;
I(Line+17-i,j)=65535;
end
end
%------------------- 上边缘 -----------------------------
elseif Line<=20 && Column>20 && Column<=Width-20
%------------- 竖线 ---------------------
for i=1:Line+20
for j=0:2
I(i,Column-20+j)=1;
I(i,Column+20-j)=1;
end
end
for i=4:Line+17
for j=0:2
I(i,Column-17+j)=65535;
I(i,Column+17-j)=65535;
end
end
%-------------- 横线 -----------------------
for j=Column-20:Column+20
for i=0:2
I(i+1,j)=1;
I(Line+20-i,j)=1;
end
end
for j=Column-17:Column+17
for i=0:2
I(i+4,j)=65535;
I(Line+17-i,j)=65535;
end
end
%------------- 下边缘 -----------------------
elseif Line>Height-20 && Column>20 && Column<=Width-20
%------------- 竖线 ---------------------
for i=Line-20:Height
for j=0:2
I(i,Column-20+j)=1;
I(i,Column+20-j)=1;
end
end
for i=Line-17:Height-3
for j=0:2
I(i,Column-17+j)=65535;
I(i,Column+17-j)=65535;
end
end
%-------------- 横线 -----------------------
for j=Column-20:Column+20
for i=0:2
I(Line-20+i,j)=1;
I(Height-i,j)=1;
end
end
for j=Column-17:Column+17
for i=0:2
I(Line-17+i,j)=65535;
I(Height-3-i,j)=65535;
end
end
%------------- 左上角 -----------------------
elseif Line<=20 && Column<=20
%------------- 竖线 ---------------------
for i=1:Line+20
for j=0:2
I(i,j+1)=1;
I(i,Column+20-j)=1;
end
end
for i=4:Line+17
for j=0:2
I(i,j+4)=65535;
I(i,Column+17-j)=65535;
end
end
%-------------- 横线 -----------------------
for j=1:Column+20
for i=0:2
I(i+1,j)=1;
I(Line+20-i,j)=1;
end
end
for j=4:Column+17
for i=0:2
I(i+4,j)=65535;
I(Line+17-i,j)=65535;
end
end
%------------- 右上角 -----------------------
elseif Line<=20 && Column>Width-20
%------------- 竖线 ---------------------
for i=1:Line+20
for j=0:2
I(i,Column-20+j)=1;
I(i,Width-j)=1;
end
end
for i=4:Line+17
for j=0:2
I(i,Column-17+j)=65535;
I(i,Width-3-j)=65535;
end
end
%-------------- 横线 -----------------------
for j=Column-20:Width
for i=0:2
I(i+1,j)=1;
I(Line+20-i,j)=1;
end
end
for j=Column-17:Width-3
for i=0:2
I(i+4,j)=65535;
I(Line+17-i,j)=65535;
end
end
%------------- 左下角 -----------------------
elseif Line>Height-20 && Column<=20
%------------- 竖线 ---------------------
for i=Line-20:Height
for j=0:2
I(i,j+1)=1;
I(i,Column+20-j)=1;
end
end
for i=Line-17:Height-3
for j=0:2
I(i,j+4)=65535;
I(i,Column+17-j)=65535;
end
end
%-------------- 横线 -----------------------
for j=1:Column+20
for i=0:2
I(Line-20+i,j)=1;
I(Height-i,j)=1;
end
end
for j=4:Column+17
for i=0:2
I(Line-17+i,j)=65535;
I(Height-3-i,j)=65535;
end
end
%------------- 右下角 -----------------------
elseif Line>Height-20 && Column>Width-20
%------------- 竖线 ---------------------
for i=Line-20:Height
for j=0:2
I(i,Column-20+j)=1;
I(i,Width-j)=1;
end
end
for i=Line-17:Height-3
for j=0:2
I(i,Column-17+j)=65535;
I(i,Width-3-j)=65535;
end
end
%-------------- 横线 -----------------------
for j=Column-20:Width
for i=0:2
I(Line-20+i,j)=1;
I(Height-i,j)=1;
end
end
for j=Column-17:Width-3
for i=0:2
I(Line-17+i,j)=65535;
I(Height-3-i,j)=65535;
end
end
end
end
ImageOut=uint16(I);
else
ImageOut=uint16(I);
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?