本帖最后由 Anna_Uy4zK 于 2019-4-19 15:34 编辑
对几百张图片进行筛选,把全黑图片删掉,只保留有图像的图片,请问MATLAB如何实现?我在网上做了一个尝试,请指教一二。在此非常感谢!尝试代码如下:
%%对图片进行筛选
file_path1='F:\实验\2019春季\201904\图片自动识别\Video\'; %图像文件夹路径
Output_file_path2='F:\实验\2019春季\201904\图片自动识别\VideoTry1\';%输出路径
img_path_list=dir(strcat(file_path1,'*.jpg'));%获取该文件夹下所有jpg格式的图像
img_num=length(img_path_list);%获取图像的数量
for j=1:img_num %逐一读取图像
image_name=img_path_list(j).name;%图像名
image1=imread(strcat(file_path1,image_name));%拼接图像名
fprintf('%d %s\n',j,strcat(file_path1,image_name));%显示正在处理的图像名
%图像处理过程
if size(image1,3)>1
image2= rgb2gray(image1);%将真彩色图片转换成灰度图像
img_num=image2== 0;
n_black = sum(img_num(:)); %计算黑色像素点的个数
if n_black == size(image1,1)*size(image1,2) %若黑像素个数等于图像所有像素个数
image3=find(image2==n_black);%查找全黑图片
delete(image3);%删除全黑图片
imshow(image);
saveas(image1,[Output_file_path2,int2str(j),'_bw.jpg']);%将处理后的图片保存到目标文件夹
end
end
end
有图像.jpg
(24.28 KB, 下载次数: 0)
2019-4-19 15:29 上传
示例图1
无图像.jpg
(22.01 KB, 下载次数: 0)
2019-4-19 15:29 上传
示例图2
2019-4-19 15:26 上传
点击文件名下载附件
1.01 KB, 下载次数: 8
尝试程序