xfzhang


用matlab实现在图像上生成指定中心,指定大小的矩形窗(奇数*奇数)

找了好久没找到,感觉挺有用就自己写了一个!

欢迎学习交流


代码
function PlaneWin = PlaneWindow(CentreCoorX,CentreCoorY,RadiusX,RadiusY,SizeImRow,SizeImColumn)
% 在图像上生成指定中心,指定大小的矩形窗(奇数*奇数)
%
% Input:
% CentreCoorX(1*1)
% CentreCoorY(1*1)
% RadiusX(1*1)
% RadiusY(1*1)
% SizeImRow(1*1)
% SizeImColumn(1*1)
% Output:
% PlaneWin(SizeImRow*SizeImColumn)
%
% X.F.Zhang (2010/11/24, v1.0)
%
ZEROS_FLAG
= 1;
StartRowCoor
= CentreCoorX-RadiusX; StartColumnCoor = CentreCoorY-RadiusY;
if StartRowCoor < 1
StartRowCoor
= 1;
elseif StartRowCoor
>= SizeImRow
error(
\'(1)The Central Coordination isn\'\'t in the image!\');
end
if StartColumnCoor < 1
StartColumnCoor
= 1;
elseif StartColumnCoor
>= SizeImColumn
error(
\'(2)The Central Coordination isn\'\'t in the image!\');
end

EndRowCoor
= CentreCoorX+RadiusX; EndColumnCoor = CentreCoorY+RadiusY;
if EndRowCoor > SizeImRow
EndRowCoor
= SizeImRow;
elseif EndRowCoor
<= 0
error(
\'(3)The Central Coordination isn\'\'t in the image!\');
end
if EndColumnCoor > SizeImColumn
EndColumnCoor
= SizeImColumn;
elseif EndColumnCoor
<= 0
error(
\'(4)The Central Coordination isn\'\'t in the image!\');
end

PlaneWin
= zeros(SizeImRow, SizeImColumn);
if ZEROS_FLAG
for i = StartRowCoor:EndRowCoor
for j = StartColumnCoor:EndColumnCoor
PlaneWin(i,j)
= 1;
end
end
end

end

 


版权归原创作者所有

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-07-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-07
猜你喜欢
  • 2021-07-04
  • 2022-12-23
  • 2021-11-10
  • 2021-09-30
  • 2022-12-23
  • 2021-11-21
  • 2021-11-05
相关资源
相似解决方案