用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;endsubdirpath = 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); % 保存图像elsecontinue;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;endsubdirpath = 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:

clcroot_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/0001rootdir_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.jpgdisp(images_1) %E:\gyx\Learning\Practice\4\data\mars_seg\bbox_train_seg\0001\0001C1T0001F001.pngImageData = 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;endj = j+1;
end

效果图如下:

===>

Matlab-提取前景相关推荐

  1. 利用matlab对rosbag数据,通过matlab提取rosbag数据

    通过matlab提取rosbag数据 代码如下: 最近在做AGV导航实验,导航小车是基于ROS实现的,判断小车导航是否运行稳定,可以直接通过rviz直观看出来.但是如何通过数据定性地分析数据,这就需要 ...

  2. MATLAB 提取*.m 文件调用的所有函数

    MATLAB 提取*.m 文件调用的所有函数 clc clear filename = 'processGRDECL.m'; %依赖父文件 dir_colections = [pwd '\collec ...

  3. matlab提取数据的一部分,matlab如何提取数组中的满足一定范围的一段数据

    给定一个数组,如何让matlab生成一个这个数组中的一个随机数? x=[102030];x(randi(length(x)));其中randi(length(x))生成从1~(x的长度)这几个自然数中 ...

  4. Matlab提取矩阵行数与列数

    一.概述 Matlab提取矩阵行数与列数主要用到size()这个函数 二.详解 1. t=size(T); 只用一个参数接受结果时,size返回一个行向量,第一个元素代表行数,第二个元素代表列数. 2 ...

  5. matlab输出多个参数到表格固定列,matlab将excle的列提取出来?如何使用Matlab提取Excel中指定列的数据?...

    MATLAB 在txt文件中怎么提取数据,并将那三列数据转化为EXCLE格式? 在matlab中 file import data number of text header lines 改成6 下一 ...

  6. 使用Matlab提取ADC采样数据中的噪声

    正常波形与噪声波形的区别 正常方波信号的特征:一个周期内的数据按时间单调变化,则仅有2种情况:① 数据在上升或下降边沿时,其两边的数据则是一边大一边小(如下图中C和D点):② 数据处于平稳时,则两边大 ...

  7. 使用Matlab提取ADC数据占空比变化的波形

    提取变化占空比的规则如下: 1. 如果占空比发生 >=5% 的变化,则认为占空比发生变化: 2. 正常的1个周期100个,其中连续 <0.1V 变化的点约为40个左右: 3. 那么,40* ...

  8. MATLAB 提取分数的分子分母,并转换为数值

    MATLAB 提取分数的分子分母,并转换为数值 R=4/6; [I,D]=numden(sym( R )); I=eval(I); %分子 D=eval(D); %分母

  9. matlab如何取对数坐标,利用Matlab提取图片中曲线数据(线性修正,支持对数坐标)

    利用Matlab提取图片中曲线数据 前一段时间看到一篇文章"利用Matlab提取图图片中的数据",觉得思路挺好,遂下载下来研究了一番,发现作者所编写的程序没有考虑原始图片非水平放置 ...

  10. Python 提取前景-单一颜色背景

    图像处理中去除背景是一个很经典的话题.比如在图像识别中,就需要去除背景,保留感兴趣的部分.去除背景的算法有: 1)掩膜进行位运算 2)使用grabcut 3)边缘提取 4)轮廓检测+填充法 5)使用H ...

最新文章

  1. linux内核网络协议栈--ip层报文转发之ip_local_out()函数(六)
  2. 如何在Linux系统上自动执行任务
  3. 面绘制经典算法:MarchingCube实现(C++ OpenGl代码篇)
  4. 2019-02-26-算法-进化(回文数)
  5. selenium 4_Selenium4 Alpha –期望什么?
  6. Hibernate架构概述
  7. 怎么控制ajax执行先后顺序,[转]多个ajax请求时控制执行顺序或全部执行后的操作...
  8. 卧槽!我的IDEA中XML显示屎黄色,怎么去掉?
  9. .Net读取Excel的数据类型不统一获取空值问题
  10. 计算机桌面设置上时间表,怎么在电脑上安排每天的工作计划?你需要添加一款提醒功能强大的桌面便签软件...
  11. 2022年 27 个最佳 UX/UI 设计灵感网站
  12. protect 继承_【private,public,protect三种继承方式的区别】
  13. 中国农业大学821数据结构计算机考研
  14. 独立思考者的思考模型
  15. 查询攻略,将多个退回延误的快递单号物流设置分类
  16. 读硕士和读博士有什么区别?
  17. html中加hover啥意思,css中hover是什么意思
  18. img标签 图片报错处理
  19. c语言int2字节负数类型范围,C语言中的正负数以及数值溢出
  20. 搜索引擎技术 ——链接分析

热门文章

  1. Redis之地理坐标
  2. 招聘岗位:大数据建模工程师 年薪:25-48W 工作地点:北京
  3. 图灵停机问题(The Halting Problem)------巧妙的证明
  4. OTP动态令牌工作原理分析
  5. 音频编码(三)——音频编解码标准
  6. 过滤器Filter(非常非常重要)
  7. Python应用与实践
  8. 推荐黄佳新书--SAP业务数据传输指南
  9. ETAP中谐波源数据
  10. What inspires designers? Preferences on inspirational approaches during idea generation