Matlab-提取前景

用matlab在文件夹下读取mask(.png)图片信息和原图(.jpg)图片信息,对mask图片信息进行0和1二值化,再和原图进行点乘操作,提取出相应的前景信息。

Market1501:

clc;clear all
rootdir = 'E:/gyx/Paper/PRID/Test/dataset/markt1501_all/query';
subdir = dir(rootdir);


for i=1:length(subdir)
   if(isequal(subdir(i),'.') || isequal(subdir(i),'..') || ~subdir(i).isdir) 
       continue;
   end
   subdirpath = fullfile(rootdir,subdir(i).name,'*.jpg');
   subdirpath_1 = fullfile(rootdir,subdir(i).name,'*.png');
   images = dir(subdirpath); % 所有后缀为.jpg的文件
   images_1 = dir(subdirpath_1); 
   
   for j=1:length(images)
            disp(erase(images(j).name,'.jpg'))                               
            disp(erase(images_1(j).name,'.png'))
            if erase(images(j).name,'.jpg') == erase(images_1(j).name,'.png')  
                        ImageName = fullfile(rootdir,images(j).name);
                        disp(ImageName);            
                        ImageData = imread(ImageName); % 依次读取图像
                        ImageName_1 = fullfile(rootdir,images_1(j).name);   
                        disp(ImageName_1);
                        ImageData_1 = imread(ImageName_1) ;
                        Image_n = ImageData  .*  (ImageData_1 / 255); 
                        saveddir = 'E:/gyx/Paper/PRID/Test/dataset/ForeGround'; % 图像新保存到的路径
                        savedname = fullfile(saveddir,images(j).name); % 图像名称不变
                        disp(savedname);
                        imwrite(Image_n,savedname); % 保存图像
           else
                   continue;
           end                       
   end
end

效果图如下: 

                                                                     ===>

 

cuhk03: 

clc
rootdir = 'E:/gyx/Learning/Practice/4/data/cuhk03/labeled/images/'; %全景图
rootdir_1 = 'E:/gyx/Learning/Practice/4/data/cuhk03_seg/cuhk03_labeled_seg/'; %分割mask图
subdir = dir(rootdir);
subdir_1 = dir(rootdir_1);
 
 
for i=1:length(subdir)
    if(isequal(subdir(i),'.') || isequal(subdir(i),'..') || ~subdir(i).isdir) 
       continue;
   end
   subdirpath = fullfile(rootdir,subdir(i).name,'*.jpg');
   subdirpath_1 = fullfile(rootdir_1,subdir_1(i).name,'*.png');
   images = dir(subdirpath); % 所有后缀为.jpg的文件
   images_1 = dir(subdirpath_1); 
   
   j = 1;
   while j <= length(images)
            disp(erase(images(j).name,'.jpg'))                               
            disp(erase(images_1(j).name,'.png'))
            
             ImageName = fullfile(rootdir,images(j).name);
             disp(ImageName);            
             ImageData = imread(ImageName); % 依次读取图像
             ImageName_1 = fullfile(rootdir_1,images_1(j).name);   
             disp(ImageName_1);
              ImageData_1 = imread(ImageName_1) ;
              Image_n = ImageData  .* (ImageData_1 / 255); 
              saveddir = 'E:/gyx/Learning/Practice/4/data/Test_seg/test/'; % 图像新保存到的路径
               savedname = fullfile(saveddir,images_1(j).name); % 图像名称不变
               disp(savedname);
               imwrite(Image_n,savedname); % 保存图像
               j=j+1;
   end
end

 效果图如下: 

                                                                 ===>

 

Mars:

clc

root_dir = 'E:/gyx/Learning/Practice/4/data/mars/bbox_train/';
subdir_root = dir(root_dir);  %路径下的所有文件夹

j=3;
while j<=length(subdir_root) 
    %disp(j);
    Kid = subdir_root(j).name;  %所有子文件夹
    %disp(Kid) % name: '0001'
    rootdir_1 = strcat('E:/gyx/Learning/Practice/4/data/mars/bbox_train/',Kid); %全景文件夹
    disp(rootdir_1);  %E:/gyx/Learning/Practice/4/data/mars/bbox_train/0001
    rootdir_2 = strcat('E:/gyx/Learning/Practice/4/data/mars_seg/bbox_train_seg/', Kid);  %mask文件夹
    subdir = dir(rootdir_1);    %文件夹下所有文件
    subdir_1 = dir(rootdir_2);   %文件夹下所有文件
    
    i = 3;
    while i<=length(subdir)
            images = fullfile(rootdir_1,subdir(i).name);    
            images_1 = fullfile(rootdir_2,subdir_1(i).name);    %第i个文件路径
            disp(images) %E:\gyx\Learning\Practice\4\data\mars\bbox_train\0001\0001C1T0001F001.jpg
            disp(images_1) %E:\gyx\Learning\Practice\4\data\mars_seg\bbox_train_seg\0001\0001C1T0001F001.png
            ImageData = imread(images); % 依次读取图像
             ImageData_1 = imread(images_1) ;
             Image_n = ImageData  .* (ImageData_1 / 255);
             saveddir = strcat('E:/gyx/Learning/Practice/4/data/mars_seg/new1/', Kid); % 图像新保存到的路径
             savedname = fullfile(saveddir,subdir(i).name); % 图像名称不变
             disp(savedname);
             imwrite(Image_n,savedname); % 保存图像
             i = i+1;
    end
    j = j+1;
end

 效果图如下:

                                                        ===>

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值