MATLAB中行程编码技术

行程编码的M语言实现

在MATLAB中输入下面代码

I=imread(‘pears.png’);%读入图像并进行灰度转换
imshow(I);
IGRAY=rgb2gray(I);
[m n]=size(IGRAY);
c=I(1,1);RLEcode(1,1:3)=[1 1 c];%建立数组RLEcode,其中元素排列形式为[行程起始行坐标、行程列坐标、灰度值]
t=2;
for k=1:m %进行行程编码
    for j=1:n
        if(not(and(k==1,j==1)))
            if(not(I(k,j)==c))
                RLEcode(t,1:3)=[k j I(k,j)];
                c=I(k,j);
                t=t+1;
            end
        end
    end
end

结果为

《MATLAB中行程编码技术》

将上述编码稍作修改,使得待压缩编码的图像为二值图像,编码如下

I=imread(‘pears.png’);%读入图像并转换成二值图像
imshow(I);
IBW=im2bw(I);
[m n]=size(IBW);
c=I(1,1);RLEcode(1,1:3)=[1 1 c];%建立数组RLEcode,其中元素排列形式为[行程起始行坐标、行程列坐标、灰度值]
t=2;
for k=1:m %进行行程编码
    for j=1:n
        if(not(and(k==1,j==1)))
            if(not(IBW(k,j)==c))
                RLEcode(t,1:3)=[k j IBW(k,j)];
                c=IBW(k,j);
                t=t+1;
            end
        end
    end
end

结果如下

《MATLAB中行程编码技术》



    原文作者:游程编码问题
    原文地址: https://blog.csdn.net/chengjunda22/article/details/69948276
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞