图片批量读入取灰度值和切分
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