MATLAB图片去白边

Posted on 2022-09-16 21:57  昨夜三更雨  阅读(265)  评论(0)    收藏  举报

很多软件制作的图像都存在白边,例如MATLAB、Visio、Origin等,这些存在白边的图像插入文档时将使排版看起来很空,不太美观。网上给出了很多去白边的办法,私以为不是太好用。以下给出一种基于MATLAB的图像去白边方法,已封装为函数,经测试效果良好,如下:

function im_cut( filename )

im_data = imread( filename );

[ a, b, c ] = size( im_data );

for i = 1: 1: a
    for j = 1: 1: b
        for k = 1: 1: c
            if im_data( i, j, k ) < 225
                a_end = i;
                break;
            end
        end
    end
end

for i = a: -1: 1
    for j = 1: 1: b
        for k = 1: 1: c
            if im_data( i, j, k ) < 225
                a_start = i;
                break;
            end
        end
    end
end

for j = 1: 1: b
    for i = 1: 1: a
        for k = 1: 1: c
            if im_data( i, j, k ) < 225
                b_end = j;
                break;
            end
        end
    end
end

for j = b: -1: 1
    for i = 1: 1: a
        for k = 1: 1: c
            if im_data( i, j, k ) < 225
                b_start = j;
                break;
            end
        end
    end
end

im_data_cut = im_data( a_start: a_end, ...
    b_start: b_end, : );

imwrite( im_data_cut, filename );