求轮廓边界代码

close all;% 关闭所有图形窗口
clear all;%清除工作空间所有变量
clc;%清空命令行
I=imread('E:\testwork\tiquwenlitezheng\1.jpg');%读入要处理的清晰图像,并赋值给I
c=im2bw(I,graythresh(I));%I转化为二值图像
set(0,'defaultFigurePosition',[100,100,1000,500]);%修改图像位置的默认值设置
set(0,'defaultFigureColor',[1 1 1]);%厉害
figure;subplot(131);imshow(I);%显示原图像
c=flipud(c)%实现矩阵c上下翻转
b=edge(c,'canny');%基于canny算子进行轮廓提取
[u,v]=find(b);%返回边界矩阵b中非零元素的位置
xp=v;%行值v赋给xp
yp=u;%列值u赋给yp
x0=mean([min(xp),max(xp)]);%x0为行值的均值
y0=mean([min(xp),max(xp)]);%x0为列值的均值
xp1=xp-x0;
yp1=yp-y0;
[cita,r]=cart2pol(xp1,yp1);%直角坐标转化为极坐标;
q=sortrows([cita,r]);%从r列开始比较数值并按升序排序
cita=q(:,1);%赋角度
r=q(:,2);%赋半径模值
subplot(132);polar(cita,r);%画出极坐标下的轮廓图
[x,y]=pol2cart(cita,r);
x=x+x0;
y=y+y0;
subplot(133);polar(x,y);%画出直角坐标下的轮廓图
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值