资源简介
对二值图像黑白跳变点的坐标进行提取,利用两for循环先一列一列的扫描,最后对提取出来的数据进行遍历。找出y坐标重复的点分别用后面的坐标覆盖掉。
代码片段和文件信息
clc
clear
open(‘截图.fig‘);
h=get(gca‘Children‘);
I=get(h‘Cdata‘);%导入fig图片
Ig = rgb2gray(I);
%T= graythresh(Ig);
Bimg = ~(im2bw(Ig0.2)); %二值化然后取反
L = bwlabel(Bimg); %给每个区域加标签
for i = 1 : max(L(:))
NrLi = sum(L==i); %第i个区域的面积。
if NrLi >1 %这个数你自己算,估计一下那些小孔最大能占多少个pixel。
L(L==i) = 10; %太大的不是你要的孔,去掉
end
end
figure; imshow(L);
axis on
[mn]= size(L);
%[r c] = find(L == 1)%c对应水平位置、r对应垂直位置
%[rowcol] = find(L)%查询满足一定条件的元素的行和列
%%%%%%%%%%%上
x=0;
y=0;
for i=3:m
for j=3:n
if ((Bimg(ij)==0)&&(Bimg(ij)==Bimg(i+1j))&&(Bimg(ij-1)==1)&&(Bimg(ij-1)==Bimg(ij+1))&&(Bimg(ij+1)==Bimg(i-1j))||((Bimg(ij)==0)&&(Bimg(ij-1)==0)&&(Bimg(ij-2)==0)&&(Bimg(ij+1)==0)&&(Bimg(ij+2)==0)&&(Bimg(i+1j)==0)&&(Bimg(i-1j)==1)))
x=x+1;
a(1x)=5.82-(i+8)*3.04/369+0.118;
y=y+1;
a(2y)=j;
end
end
end
%%%%%%%%%%%%%%%中上
x1=0;
y1=0;
for i=3:m
for j=3:n
评论
共有 条评论