Matlab实现图片批量读入处理

图片批量读入取灰度值和切分

1、选择文件夹批量读入图片
2、遍历每一张图片并调用函数处理
3、输出文件
批量读入并取灰度平均值

file_path ='D:\Light_Gray\Var_exposuretime\';% 图像文件夹路径
img_path_list = dir(strcat(file_path,'*.bmp'));%获取该文件夹中所有bmp格式的图像
img_num = length(img_path_list);%获取图像总数量
Light=[]
if img_num > 0 %有满足条件的图像
        for j = 1:img_num %逐一读取图像
            image_name = img_path_list(j).name% 图像名
            image =imread(strcat(file_path,image_name));
            Light(j)=get_light(image);%取图像中心区域灰度值
            [image1,image2,image3,image4]=image_cut(image);%图像四等分
        end
end
Out=fopen('Gray_Exposuretime.txt','wt');
fprintf(Out,'%g\n',Light);
fclose(Out);
           



function[light]=get_light(image)
    %gray=rgb2gray(image);%若图像为三通道RGB则转化为灰度图像
    len=size(image);	%图像大小
    range=uint16(len*0.05);		%中心区域范围
    mid=uint16(len/2);			%图像中心点
    up=mid(1)-range(1);			%中心区上边界
    down=mid(1)+range(1);		%中心区下边界
    left=mid(2)-range(2);		%中心区左边界
    right=mid(2)+range(2);		%中心区右边界
    mid_area=image(up:down,left:right);		%取出中心区
    light=mean(mean(mid_area));		%灰度均值
end


function[image1,image2,image3,image4]=image_cut(image)
    gray=rgb2gray(image);		%图像灰度化
    Size=size(gray);			%图像大小
    Half=uint16(Size/2);		%中心点
    image1=gray(1:Half(1,1),1:Half(1,2));	%左上部分
    subplot(2,2,1);
    imshow(image1);
    image2=gray(1:Half(1,1),Half(1,2):Size(1,2));	%右上部分
    subplot(2,2,2);
    imshow(image2);
    image3=gray(Half(1,1):Size(1,1),1:Half(1,2));	%左下部分
    subplot(2,2,3);
    imshow(image3);
    image4=gray(Half(1,1):Size(1,1),Half(1,2):Size(1,2));	%右下部分
    subplot(2,2,4);
    imshow(image4);
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值