用Matlab对图像黑边进行裁剪

这段代码展示了如何利用Matlab去除图像的上下黑边和左右黑边。通过求和判断像素值,找到非黑边区域的边界,并对图像进行相应裁剪,实现了批量处理带有黑边的图像。
摘要由CSDN通过智能技术生成
clc;
clear;
function A=cutrow(I)
%返回裁剪时的行数

[m,n]=size(I);     %得到矩阵的行数和
b=sum(I,2);        %对每一行求和,得到一个列向量
b=b';              %对列向量转置
z=find(b>=5000);   %这个阈值可以设大一点,反正都是要被裁掉一些的,寻找非零元素
[mm,nn]=size(z);
A=[z(1),z(nn)];    %最上和最下的行号
function B=cutcol(I)
%方法:分别找出最左边的边界,和最右边的边界(边界:大于某个灰度值即可"这里我们依据测量观察将其定为20")
%返回裁剪时的列数;

[m,n]=size(I);    %得到矩阵的行数和列数
a=sum(I);         %对列进行求和,得到一个行向量;
z=find(a>=10000);    %找出所有和大于10000的列标号放在z中,z是一个行向量
[mm,nn]=size(z);  %z的尺寸
B=[z(1),z(nn)];   %裁剪最左和最右的列号

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 读取图像
im={}; %创建字典保存读取的图片
dis=dir('C:\Users\hxd\Desktop\111\*.jpeg');%'C:\Users\rengang\Desktop\MESSD\messidor\*.tif'

h = waitbar(0,'Please wait...');

for i=1:length(dis)  

     path=strcat('C:\Users\hxd\Desktop\111\',dis
  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值