博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

matlab 图像上生成指定中心,指定大小的矩形窗

Posted on 2010-11-24 03:04  编著人  阅读(2183)  评论(0编辑  收藏  举报


用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

 


版权归原创作者所有