matlab 用鼠标取ROI区域边界点坐标的一个小程序

程序分为两个部分,一部分是用鼠标将ROI区的大致轮廓标记出来,第二部分是将标记出来的坐标点之间的线段按设置的单位距离平分,总的效果是将鼠标标记的整个区域的边界点按单位距离输出到txt中。

I = imread('highpos10_2345看图王.bmp');         %-- load the image

figure(1); imshow(I); title('Input Image');
text(6,6,'Left click to get points, right click to get end point','FontSize',[12],'Color', 'r');
[m,xi,yi]=roipoly;

for i=1:int8(max(size(xi))-1)
xy=[xi(i)-xi(i+1),yi(i)-yi(i+1)]; %求两点之间的长度
length=norm(xy);
dis=2;  %单位长度
N=int8(length/2);  %点数
X=linspace(xi(i),xi(i+1),N);
X=X';
x=[xi(i),xi(i+1)];
y=[yi(i),yi(i+1)];
Y=interp1(x,y,X);
  
C=zeros(N,2);
C(:,1)=X;
C(:,2)=Y;
if i==1
    D=C;
else
    D=[D;C];
end  

end
imshow(I); hold on;
plot(D(:,1),D(:,2),'o');
hold off;

save Afile.txt D -ASCII; %保存为了指数形式

fid=fopen('b.txt','wt');%写入文件路径,保存为原格式
[m,n]=size(D);
 for i=1:1:m
    for j=1:1:n
       if j==n
         fprintf(fid,'%g\n',D(i,j));
      else
        fprintf(fid,'%g\t',D(i,j));
       end
    end
end
fclose(fid);





  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值