Files

56 lines
1.5 KiB
Matlab
Executable File

% Disk Image
%{
%Imaging ToolBox method
r=14;
A=zeros(70,70); %(fIntsc(refPtR:(refPtRExt),refPtC:(refPtCExt)))
m={40,40};
A(m{:})=1;
B=imdilate(A,strel('disk',r,0) );
imshow(B)
area=pi*r^2
clear all
%}
%without Image Proc. Toolbox
%r=14;
%A=zeros(70,70);
%A=zeros(r,r);
%P=[40,40];
%center=[refPtR+ round(.5*width), refPtC+ round(.5*width)];
%A=zeros(70,70);
%radius=14;
diaExt=2*(radius+1);
circBoxA=zeros(diaExt,diaExt);
center=[radius+2, radius+2];
[m n ]=size(circBoxA);
X=bsxfun(@plus,(1:m)', zeros(1,n));
Y=bsxfun(@plus,(1:n), zeros(m,1));
cirMask=sqrt(sum(bsxfun(@minus,cat(3,X,Y),reshape(center,1,1,[])) .^2,3))<=radius;
area=pi*radius^2;
cirPixA=nnz(cirMask);
optCirMask=double(cirMask);
optCirMask(optCirMask==0)=0.8;
% Foto Circle Fram(e)
expansion=2;
radExpan=radius+expansion;
FdiaExt=2*(radExpan);
circBoxA=zeros(FdiaExt,FdiaExt);
center=[radExpan+1, radExpan+1];
[m n ]=size(circBoxA);
X=bsxfun(@plus,(1:m)', zeros(1,n));
Y=bsxfun(@plus,(1:n), zeros(m,1));
FcirMask=sqrt(sum(bsxfun(@minus,cat(3,X,Y),reshape(center,1,1,[])) .^2,3))<=radExpan;
% FcirPixA=nnz(cirMask);
FoptCirMask=double(FcirMask);
FoptCirMask(FoptCirMask==1)=2;
% FoptCirMask(FoptCirMask==0)=1;
% Combine Masks to create circular boundry
padOptCirMask=padarray(optCirMask,[expansion-1 expansion-1],0.8);
FoptCirMask=FoptCirMask .* padOptCirMask;
FoptCirMask(FoptCirMask==1.6)=0.8;
FoptCirMask(FoptCirMask==0)=1;
FoptCirMask(FoptCirMask==2)=1;
% imagesc(cirMask)