MATLAB中生成的图片保存后发现周围有很大的白边,怎么去掉啊
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB中生成的图片保存后发现周围有很大的白边,怎么去掉啊相关的知识,希望对你有一定的参考价值。
p = imread(fn);imshow(p);[m,n,p] = size(p);hold onM = 4; % 水平分量N = 5; % 垂直分量lw = 5; % 划线宽度mx = ones(1,M+1);my = linspace(1,m,M+1);% 画水平线for k = 1:M+1 line([mx(k) n*mx(k)],[my(k) my(k)],'color','b','LineWidth',lw);endnx = linspace(1,n,N+1);ny = ones(1,N+1);% 画垂直线for k = 1:N+1 line([nx(k) nx(k)],[ny(k) m*ny(k)],'color','b','LineWidth',lw);end这是代码,该怎么改才能保存没有白边的图片
fn = 'bbb.jpg';p = imread(fn);
[pm,pn,pp] = size(p);
subplot(121); imshow(p);
title('处理前');
b = rgb2gray(p);
b = double(b)/255;
py = 10; % 图片压缩时有颜色漂移
% 查找左边界
c = 1;
while sum(b(:,c))>=pm-py
c = c+1;
end
lp = c;
% 查找右边界
c = pn;
while sum(b(:,c))>=pm-py
c = c-1;
end
rp = c;
% 查找上边界
r = 1;
while sum(b(r,:))>=pn-py
r = r+1;
end
tp = r;
% 查找下边界
r = pm;
while sum(b(r,:))>=pn-py
r = r-1;
end
bp = r;
R = p(tp:bp,lp:rp,:);
subplot(122); imshow(R);
title('去除白边后'); 参考技术A 如果图片不多,可以复制到word里面,然后用裁剪。
白边不是图片部分产生的,是matlabGUI为了美观边上有的空白。我一般放到word单独裁剪 参考技术B clc; close all; clear;
I = imread('peoplewalk.jpg');
fg = figure;
set(fg, 'name', 'view picture');
set(fg, 'numbertitle', 'off');
set(fg, 'toolbar', 'none');
set(fg, 'units', 'pixel');
pos = get(fg, 'position');
set(fg, 'position', [pos(1) pos(2)-80 size(I, 2) size(I, 1)]);
set(gca, 'units', 'pixel');
set(gca, 'position', [0 0 size(I, 2) size(I, 1)]);
imshow(I, []);
%加上自己要对图像处理的命令。%
以上是关于MATLAB中生成的图片保存后发现周围有很大的白边,怎么去掉啊的主要内容,如果未能解决你的问题,请参考以下文章
android如何实现消除imageview周围的一圈细细的白边?