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运行即可