A No1のKulesです。
続き
function GetStartPoint(handle)
if CheckFlag;
GCDir=pwd;
A=round(get(handle,'CurrentPoint'));
Coord=ReviseCoord(handle,A(1,[1,2]));
rectangle('Position',[Coord,1,1],'EdgeColor','w','LineStyle',':');
save([GCDir '\_StartPoint'],'Coord');
end;
return;
function ReDrawRect(handle)
if CheckFlag;
GCDir=pwd;
if exist([GCDir '\_StartPoint.mat'],'file');
load([GCDir '\_StartPoint'],'Coord');
A=round(get(handle,'CurrentPoint'));
CoordEnd=ReviseCoord(handle,A(1,[1,2]));
RectX=min([Coord(1),CoordEnd(1)]);
RectY=min([Coord(2),CoordEnd(2)]);
RectW=abs(Coord(1)-CoordEnd(1));
RectL=abs(Coord(2)-CoordEnd(2));
if RectW==0;
RectW=1;
end;
if RectL==0;
RectL=1;
end;
h_r=findobj(handle,'Type','Rectangle');
set(h_r,'Position',[RectX,RectY,RectW,RectL]);
drawnow;
end
end;
return;
function Cut(handle)
if CheckFlag;
GCDir=pwd;
if strcmpi(input('画像を切り出しますか?\n(y/n)\n','s'),'y');
load([GCDir '\_StartPoint'],'Coord');
A=round(get(gca,'CurrentPoint'));
CoordEnd=ReviseCoord(handle,A(1,[1,2]));
ImageData=get(handle,'Cdata');
RectTop=min([Coord(2),CoordEnd(2)]);
RectBottom=max([Coord(2),CoordEnd(2)]);
RectLeft=min([Coord(1),CoordEnd(1)]);
RectRight=max([Coord(1),CoordEnd(1)]);
Cdata=ImageData(RectTop:RectBottom,RectLeft:RectRight);
Ratio=size(Cdata);
figure;
image(Cdata);
set(gca,'PlotBoxAspectRatioMode','Manual');
set(gca,'PlotBoxAspectRatio',[Ratio(2);Ratio(1);1]);
end;
delete([GCDir '\_StartPoint.mat']);
end;
delete(findobj(gca,'Type','Rectangle'));
return;
まだ続く
お礼
ありがとうございました! なんとかなりました!!