【深度学习入门】- Matlab实现图片去重

欢迎浏览本博客
大家好,我是:我菜就爱学一名刚刚入行的小白
从事方向:计算机视觉
我菜就爱学,分享有误,欢迎大佬指出

本篇介绍:继上次发博客已经断更一个月,时间有点长。主要是在学习深度学习,笔记都做在平板上,网上也有许多其他大佬,就不更新了。接下来准备看论文,也会每周更新自己对所看论文的学习

使用Matlab对两个文件中的图片去重,这个我看网上也没有人写。或许有python了,不过我开一个先例了

思路: 利用两个图片的像素和的差,然后对比,若是像素小于某个值,就认为两个图片是相似的,否则就是不相识的。

代码如下:

clear
file_path1 =  'F:\DataShu\Data\NoMark\';% 图像文件夹路径  
img_path_list1 = dir(strcat(file_path1,'*.jpg'));
img_num1=length(img_path_list1);
file_path2 =  'F:\DataShu\Data\pig_data\';% 图像文件夹路径  
img_path_list2 = dir(strcat(file_path2,'*.jpg'));
img_num2=length(img_path_list2);
if img_num2 > 0%有满足条件的图像  
        for j = 1:img_num1 %逐一读取图像  
            image_name1 = img_path_list1(j).name;% 图像名  
            image1 =  imread(strcat(file_path1,image_name1));
           %图像处理过程 省略
            flag=0
            for k=1:img_num2
                %fprintf("正在处理ceshi中的第 %d 张图片与第 %d 张图片对比\n",j,k);
                image_name2 = img_path_list2(k).name;% 图像名  
                image2 =  imread(strcat(file_path2,image_name2));  
                a=rgb2gray(image1);
                b=rgb2gray(image2);
                sum_a=sum(abs(sum(a)));
                sum_b=sum(abs(sum(b)));
                if abs(sum_a-sum_b)<100
                    %fprintf("两张图片的像素差:%d\n",abs(sum_a-sum_b));
                    flag=1
                    break;
                end
                %imwrite(image1,strcat('F:\ceshi3\'),'jpg');
               
            end  
            if flag==0
                fprintf("保存的图片是:%s\n",image_name1);
                imwrite(image1,image_name1);
            end
           

        end  
end 

最终的效果还是不错的,就是耽误时间(这个用实验室电脑,连夜跑就完了)。大佬们看到了也可以优化。

你可能感兴趣的:(深度Study入门,matlab,深度学习,计算机视觉)