zoukankan      html  css  js  c++  java
  • js通过宽高特征对图片进行分类

    # 所需模块

    * imageinfo

    * image-size

    使用npm安装即可

    #方法

    将会把分类后的数据放置到指定文件夹

    函数定义

    /* 复制图片 */
    function gotoimg(oldurl, newurl) {
      fs.readFile(oldurl, function (err, data) {
        if (err) {
          throw err;
        }
        fs.writeFile(newurl, data, function (error) {
          if (error) {
            throw error;
          }
        });
      });
    }
    获取文件夹中所有图片文件
    function readFileList(path, filesList) {
      var files = fs.readdirSync(path);
      files.forEach(function (itm, index) {
        var stat = fs.statSync(path + itm);
        if (stat.isDirectory()) {
          //递归读取文件
          readFileList(path + itm + "/", filesList)
        } else {
          var obj = {};//定义一个对象存放文件的路径和名字
          obj.path = path;//路径
          obj.filename = itm//名字
          filesList.push(obj);
        }
      })
    }
    住要的数据分析部分
    //获取文件夹下的所有图片
      getImageFiles: function (path) {
        var imageList = []; //存放遍历到的数据
        this.getFileList(path).forEach((item) => {
          var ms = image(fs.readFileSync(item.path + item.filename));
          ms.mimeType && (imageList.push(item.filename))
          /* 文件处理 */
          var url = item.path + item.filename
          var dimensions = sizeOf(url);
          /* 只当范围内宽高放进指定文件夹 */
          sum = dimensions.width + dimensions.height
          console.log(item.filename)
          if (sum <= 777 && sum >= 757) { /* 特征判定 */
            gotoimg(url, "D:/public/project/yytdata/data/1/" + item.filename)  /* 对将当前特征图片放置到指定文件夹 */
          } else if (sum <= 308 && sum >= 288) {
            gotoimg(url, "D:/public/project/yytdata/data/2/" + item.filename)
          }
        
        });
        return imageList;
      }
    调用方法,参数是要进行处理图片的文件夹地址
    getFiles.getImageFiles("C:/Users/fepengfei/Desktop/数据分类/");
     
    使用node运行即可
  • 相关阅读:
    Linux安装Jenkins
    python实现寻找目录中最新的文件
    python代码实现邮件发送
    面向对象(一) 类与类之间的关系之依赖和关联
    常见模块(五) random模块
    装饰器如何装饰带参数的函数
    常见模块(四) os模块
    常见模块(二) logging模块
    常见模块(三) pickle模块和json模块
    初识模块
  • 原文地址:https://www.cnblogs.com/moluxi/p/14677030.html
Copyright © 2011-2022 走看看