Matlab实现图像处理并以xml格式存入文件

题目:给出一组图片(图片上框有不同颜色的方框,同一颜色的方框可能有多个,不同颜色的方框代表不同的类别)
例如这样的图片:
在这里插入图片描述
要求
①在一个文件夹里循环读入图片
②输出图片的宽、高、框的类别、框的左下角坐标(X,Y),框右上角坐标(X,Y),标注的难易程度(0:不难)
③将输出的结果保存成xml类型(根节点、子节点、二级节点)的文件中,保存的文件名与读入的图片名相匹配。

实现过程:
①实现循环读文件夹中的图片:

          % 图像文件夹路径
          file_path =  'F:\标注图\';
          %获取该文件夹中所有jpg格式的图像
          img_path_list = dir(strcat(file_path,'*.jpg'));
          %获取图像总数量
          img_num = length(img_path_list);
          %有满足条件的图像
          if img_num > 0 
              %逐一读取图像
              for j = 1:img_num   
                     % 图像名
                     image_name = img_path_list(j).name;
                     rgb =  imread(strcat(file_path,image_name));
                      进行图像相关处理
               end
           end

②实现图像处理并达到输出要求:

        r = rgb(:,:,1);               %提取彩色图像的红色分量。
        g = rgb(:,:,2);               %提取彩色图像的绿色分量。
        b = rgb(:,:,3);               %提取彩色图像的蓝色分量。
        [w,h,s]=size(rgb);            %提取图像的高(行)、宽(列),维数(没有用到)
  
        red=r>=175&g<36&b<36;       %提取符合图片中红色的像素范围
        blue=r<=60&g<135&b>70;         %提取符合图片中蓝色的像素范围
        green=(20>r)&(g>80)&(g<100)&(b>20)&(b<=35);       %提取符合图片中绿色的像素范围
        orange=(r>200)&(g<118)&(g>36)&b<50;               %提取符合图片中橙色的像素范围
        purple=(175>r)&(r>97)&g<35&(b>52)&(b<=67);        %提取符合图片中紫色的像素范围
        
        a{1}=red;
        a{2}=blue;
        a{3}=green;          %将颜色存入矩阵
        a{4}=orange;
        a{5}=purple;
               
        yz=300;   
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值