皮皮网

皮皮网

【库房后台源码】【MlSkin 源码 云盘】【夺宝源码文件包】imdilate matlab 源码

时间:2024-12-29 18:29:14 分类:百科

1.matlab函数文件中的源码库房后台源码错误
2.如何用MATLAB实现一段视频中的车流量统计
3.Matlab中如何实现灰度膨胀和灰度腐蚀?

imdilate matlab 源码

matlab函数文件中的错误

       照这个用

       function img = edu_imgpreprocess(I) %图像预处理

       Igray = rgb2gray(I); %转化成灰色图像

       Ibw = im2bw(Igray,graythresh(Igray));%转化成二值 graythresh返回图像的阈值和阈值的有效性

       Iedge = edge(uint8(Ibw));

       se = strel('square',3);

       Iedge2 = imdilate(Iedge, se);

       Ifill= imfill(Iedge2,'holes');

       [Ilabel num] = bwlabel(Ifill);

       Iprops = regionprops(Ilabel);

       Ibox = [Iprops.BoundingBox];

       Ibox = reshape(Ibox,[4 ]);

       Ic = [Iprops.Centroid];

       Ic = reshape(Ic,[2 ]);

       Ic = Ic';

       Ic(:,3) = (mean(Ic.^2,2)).^(1/2);

       Ic(:,4) = 1:;

       % Extra lines compare to example2 to extract all the components into an

       % cell array

       Ic2 = sortrows(Ic,2);

       for cnt = 1:5

        Ic2((cnt-1)*+1:cnt*,:) = sortrows(Ic2((cnt-1)*+1:cnt*,:),4);

       end

       Ic3 = Ic2(:,1:2);

       ind = Ic2(:,4);

       for cnt = 1:

        img{ cnt} = imcrop(Ibw,Ibox(:,ind(cnt)));

       end

如何用MATLAB实现一段视频中的车流量统计

       mov1=mmreader('.mpg');

       mov=read(mov1,[1, ]);

       temp=size(mov);

       fnum=temp(2);

       for i=1:fnum

        strtemp=strcat(int2str(i),'.','JPG');

        imwrite(mov(i).cdata(:,:,:),strtemp);

       end%% 从视频中提出每一帧图像

       o=1;

       e='.jpg';

       for i=1:

        u=o-1;v=o-2;

        m=int2str(o);

        n=int2str(u);h=int2str(v);

        s=strcat(m,e);%%把字符串b与m连接后在连接e得到图像文件存储的位置

        m=imread(s);%%从S处把图像读取出来

        m=rgb2gray(m);%%将图像M灰度化

       m=medfilt2(m,[3,3]);

       if(o>=3)

        s=strcat(n,e);

        n=imread(s);

        n=rgb2gray(n);

        s=strcat(h,e);

        h=imread(s);

        h=rgb2gray(h);

        n=medfilt2(n,[3,3]);

        h=medfilt2(h,[3,3]);

        q=im2double(m);%%将图像数组转换为double型

        w=im2double(n); g=im2double(h);

        c=q-w;j=w-g;

        th=/;

        k= abs(c)>=th;

        c(k)=1;

        k=find(abs(c)<th);

        c(k)=0;

        c=bwareaopen(c,);

        se=strel ('line',3,);se0=strel ('line',3,0);

        c=bwmorph(c,'close'); %对上述图像进行形态学闭运算

        c=imdilate(c,[se,se0]);c=bwmorph(c,'close');

        c=bwareaopen(c,);

        k=find(abs(j)>=th);

        j(k)=1;

        k=find(abs(j)<th);

        j(k)=0;

        j=bwareaopen(j,);

        j=bwmorph(j,'close'); %对上述图像进行形态学闭运算

        j=imdilate(j,[se,se0]);j=bwmorph(j,'close');

        c=bwareaopen(c,);

        c=c&j;c=imerode(c,[se,se0]);

        figure,imshow(c);

        a=c;b=c; d=c;f=c;

        [m,n]=size(c);

       %%行扫描填充

       for i=1:m

        for j=1:n-1

        if a(i,j)>0

        a(i,j+1)=1;

        end

        end

       end

       for i=1:m

        for j=n:-1:2

        if b(i,j)>0

        b(i,j-1)=1;

        end

        end

       end

       th=a&b;

       %%列扫描填充

       for i=1:n

        for j=1:m-1

        if d(j,i)>0

        d(j+1,i)=1;

        end

        end

       end

       for i=1:n

        for j=m:-1:2

        if f(j,i)>0

        f(j-1,i)=1;

        end

        end

       end

       td=d&f;

       c=th&td;

        end

        o=o+1;

       end

Matlab中如何实现灰度膨胀和灰度腐蚀?

       1、选取函数为f(x)=-|x-6|+5在[1,]上的图像,画出函数图像。

       2、使用strel构建平坦的结构元素,如图。

       3、使用平坦的结构元素进行灰度膨胀,设置y轴范围为[0, 8]如图。

       4、构建高度为[1 1 1]的非平坦结构元素。显示的结果和平坦元素相同,但实际结构不同。

       5、使用非平坦的结构元素进行灰度膨胀,并画图即可。