[已答复] 运行.m文件后,.m文件自动消失

[复制链接]
梦想是成为大神 发表于 2021-10-13 23:29:32
本帖最后由 梦想是成为大神 于 2021-10-14 22:36 编辑

clc
clear
close all

load main_Line.mat


[L, num] = bwlabel(BW); %区域和个数
qxbw=zeros(size(L)); %曲线
szbw=zeros(size(L)); %æ•°å­—
for i=1:num
tmpbw=zeros(size(L));
p=find(L==i);
tmpbw(p)=1;
%骨架的终点
endp=bwmorph(tmpbw,'endpoints');
n=length(find(endp==1));

if n==2;
     qxbw(p)=1;
else
     szbw(p)=1;
end

end


se=strel('disk',2);      
szbw=imfill(szbw);  
szbw = bwareaopen(szbw,5);  

figure
imshow(szbw);
title('数字部分');

figure
imshow(src_i);hold on
contour(szbw, [0 1], 'r','linewidth',0.7);
title('在原图中的数字部分');

figure
imshow(src_bw);hold on
contour(szbw, [0 1], 'r','linewidth',0.7);
title();




%% 多次
for j=1:3
    j

[L1, ~] = bwlabel(src_bw,8); %区域和个数,二值化的
[L, num] = bwlabel(szbw,8); %区域和个数,数字二值化矩阵的
[m,n]=size(L);
for i=1:num
tmpbw=zeros(m,n);
p=find(L==i);
tmpbw(p)=1;


r=10; sum_cn=30;
    s = regionprops(tmpbw,'Centroid');
    C=s.Centroid; %质心
    [row1 row2 col1 col2]= Centroid_xy(C,r,m,n);
    tmpL1=L1(row1:row2 ,col1 : col2);
    bianhao=unique(tmpL1);
    for k=1:length(bianhao)
        very_bianhao=bianhao(k);
        if very_bianhao>0
            bianhao_p=find(L1==very_bianhao);
            if length( bianhao_p) < sum_cn
                quyubw=zeros(m,n);
                quyubw(bianhao_p)=1;
                 s = regionprops(quyubw,'BoundingBox');
                 B=s.BoundingBox;
                 [row1 row2 , col1 col2] = BoundingBox_xy(B);
                szbw(row1:row2, col1:col2)=1;
            end
        end
    end


end

end % end j


figure
imshow(src_bw);hold on
contour(szbw, [0 1], 'r','linewidth',0.7);
title();


szbw= bwareaopen(szbw,30);
figure;imshow(szbw);title();

%% åˆ é™¤æ¯”è¾ƒå¤§ï¼Œé•¿åº¦æ¯”è¾ƒé•¿çš„åŒºåŸŸ
[L, num] = bwlabel(szbw,8); %区域和个数
[m,n]=size(L);
for i=1:num

     tmpbw=zeros(m,n);
     p=find(L==i);
     tmpbw(p)=1;
     s = regionprops(tmpbw,'Area','MajorAxisLength');
     A=s.Area;
     M=s.MajorAxisLength;
     if A > 1200 | M >40
         szbw(p)=0;
     end
end
figure;imshow(szbw);title();

figure
imshow(rgb_i);hold on
contour(szbw, [-1 1], 'r','linewidth',0.8);
title('在原图中的数字部分');


[L, num] = bwlabel(szbw,8); %区域和个数
[m,n]=size(L);
for i=1:num

     tmpbw=zeros(m,n);
     p=find(L==i);
     tmpbw(p)=1;
     s = regionprops(tmpbw,'Area','BoundingBox');
     A=s.Area;
     B=s.BoundingBox;
     B=B(3)*B(4);
     if abs(A-B) <5
         szbw(p)=0;
     end
end

figure
imshow(rgb_i);hold on
contour(szbw, [-1 1], 'r','linewidth',1.5);
title('去掉矩形,在原图中的数字部分');

save main_Data.mat
链接: https://pan.baidu.com/s/1j-H69mcIwswi3Yf23nGwMA 提取码: eo3c

未运行Data.m

未运行Data.m

运行Data.m后

运行Data.m后

6 条回复


WarnerChang 发表于 7 天前
把数据和代码打包上传,我们运行看看是怎么回事呢!

梦想是成为大神 发表于 7 天前
WarnerChang 发表于 2021-10-14 14:39
把数据和代码打包上传,我们运行看看是怎么回事呢!

好的,老师。

梦想是成为大神 发表于 7 天前
WarnerChang 发表于 2021-10-14 14:39
把数据和代码打包上传,我们运行看看是怎么回事呢!

上传很久,只能百度网盘了

wjb986555360 发表于 4 天前
程序运行没有问题,感觉你m文件会消失是不是对这个软件使用不是很熟悉

梦想是成为大神 发表于 4 天前
wjb986555360 发表于 2021-10-17 00:41
程序运行没有问题,感觉你m文件会消失是不是对这个软件使用不是很熟悉

我运行main2_data.m后确实消失了,可能原因是我用的mac版本的matlab,版本是2020b。    老师您有办法去除图片里的等值线段,只留下等值线上的数字吗,我用连通域,效果不是很好。

梦想是成为大神 发表于 4 天前
wjb986555360 发表于 2021-10-17 00:41
程序运行没有问题,感觉你m文件会消失是不是对这个软件使用不是很熟悉

我运行main2_data.m后确实消失了,可能原因是我用的mac版本的matlab,版本是2020b。    老师您有办法去除图片里的等值线段,只留下等值线上的数字吗,我用连通域,效果不是很好。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表