匿名用户
1级
2018-11-24 回答
function CIR = C_CIR(Img)
%% 函数功能:计算输入的灰度图像的(或二值图像)的周长
% 函数输入:二值图像
% 函数输入:周长
%% 测试链码求周长CIR
I = im2bw(Img);
[m, n] = size(I);
figure(1); imshow(I); title('原图');
R = 1; % 二值图像的背景像素
I0 = zeros(m+2, n+2) + R; % 原图像+边框,避免边界查找出错
I0(2:(m+1), 2:(n+1)) = I;
x0 = 0;
y0 = 0;
fsp = 0; % 是否找到起始点
%%%%%%%%%%%%%%%%%%%% 寻找目标边界的一个边界点 %%%%%%%%%%%%%%%%
for i = 1:m
for j = 1:n
if (I0(i,j) ~= R)
x0 = i; % 记录起始点的纵坐标
y0 = j; % 记录起始点的横坐标
fsp = 1;
break;
end
end
if fsp == 1
break;
end
end
row = x0;
col = y0;
%%%%%%%%%%%%%%%%%% 按某一