• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-11
  • 语言: Matlab
  • 标签: 坐标提取  

资源简介

对二值图像黑白跳变点的坐标进行提取,利用两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
        

评论

共有 条评论