图片尺寸批量resize的matlab并行代码
在caffe ImageNet例子中有对图片进行resize的部分,文中使用的是linux shell脚本命令:
for name in /path/to/imagenet/val/*.JPEG; do
convert -resize 256x256\! $name $name
done
- 1
- 2
- 3
但该命令在运行后光标就一直处于等待状态,直到所有的图片全部运行结束。这种情况在图片数量比较大时就很恼人(对于ILSVRC2012数据集中的100多万张图片来说,这种状态可能会持续好几天),你不知道程序的运行状况,不知道处理了多少图片,不知道程序大概什么时候能结束。
因此,本文采用matlab语言中的并行机制来实现图片尺寸的批量resize。
代码如下:
clear;clc;close all;
tic; % 用于计算程序运行时间,和toc搭配使用
CoreNum=6; % cpu核的数量
% 下面代码块为并行处理检测与开启程序,需要在执行结束后予以关闭
if matlabpool('size')<=0
matlabpool('open','local',CoreNum);
else
disp('Already initialized');
end
imagePath = 'rastaPlpSpec/train/'; % 图片存放路径
imageFiles = dir(imagePath);
numFiles = length(imageFiles);
parfor i=3:numFiles % 从3开始,因为前两个是当前路径‘.’和上一级路径‘..’
j = i-2;
disp(j);
imageFile = strcat(imagePath,imageFiles(i).name);
A = imread(imageFile);
B = imresize(A,[256 256]); % resize为256x256
imwrite(B,imageFile); % 覆盖原始图片,若需要另存为,则修改此处的imageFile为新的存储路径
end
matlabpool close % 关闭并行
toc; % 显示运行时间
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
在该代码中,因为我的cpu有6个核,所以设置CoreNum=6。
如果我有两个物理cpu,每个有6个核,那么我这里是否可以设置CoreNum=12呢,这样效率会不会成倍提升?由于对matlab的并行处理了解不多,这里就留个疑问,等我知道后再补充,有知道的欢迎交流。
—————————————————————————————————————————————
在linux中关于cpu的相关信息都在文件/proc/cpuinfo中,用户可以直接查看该文件或使用下面的命令显示需要的信息:
1. 显示物理cpu个数
cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l
- 1
- 显示每个物理cpu的核数
cat /proc/cpuinfo | grep 'cpu cores' | uniq
- 1
- 显示逻辑cpu的个数
cat /proc/cpuinfo | grep 'processor' | wc -l
- 1
其中:
总核数 = 物理CPU个数 X 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
转自:http://blog.csdn.net/yingyujianmo/article/details/46520253
图片尺寸批量resize的matlab并行代码的更多相关文章
- ajaxfileupload批量上传文件+图片尺寸限制
1.首先展示ajaxfileupload代码,在这里修改为批量上传 //ajaxfileupload不展示全部代码,这是修改前与修改后代码对比,目的是上传多个文件 createUploadForm: ...
- Python3.7 练习题(三) 将指定目录下的图片进行批量尺寸大小处理
# 将指定目录下的图片进行批量尺寸大小处理 #修改图片尺寸 导入Image os 快捷键 alt+enter import os from PIL import Image def process_i ...
- python:批量修改文件名批量修改图片尺寸
批量修改文件名 参考博客:https://www.cnblogs.com/zf-blog/p/7880126.html 功能:批量修改文件名 1 2 3 4 5 6 7 8 9 10 11 12 1 ...
- node实现批量修改图片尺寸
前言 大家在工作中肯定有没有遇到过图片尺寸和我们要求的尺寸不一致的情况吧?通常我们会在网上找一下找在线的或者下载一个小工具,再或者通过ps的批处理解决.但是,作为程序猿,当然还是通过代码来解决这种小问 ...
- .NET 调整图片尺寸(Resize)各种方法
本文中如无特别说明 .NET 指 .NET 5或者更高版本,代码同样可用于 .NET Core 前言 调整图片尺寸最常用的场景就是生成缩略图,一般为保持纵横比缩小,如果图片放大会使图片变得模糊,如果确 ...
- 将“Cocos2dx-截屏并设置图片尺寸 ”中cocos2d-x代码转换为2.2的代码
Cocos2dx-截屏并设置图片尺寸: http://www.cocos2dev.com/?p=522 2.2 代码如下: void HelloWorld::screenShoot() { CCSiz ...
- 使用Adobe Photoshop CC 2015批量修改图片尺寸
最近在工作中遇到一个问题,当时客户给的图片尺寸与我要求的图片不符,由于图片非常的多,如果一张一张的修改,十分的麻烦,后来经过一位同事的指点,发现Adobe Photoshop CC 2015可以实现批 ...
- Shell脚本批量修改图片尺寸
#!/bin/sh function scandir(){ local cur_dir parent_dir workdir workdir=$ cd ${workdir} if [ ${workdi ...
- springmvc处理上传图片代码(校验图片尺寸、图片大小)
package com.maizuo.web.controller; import com.maizuo.domain.Result; import com.maizuo.util.Constants ...
随机推荐
- HTTP Header之Content-Type
HTTP Header之Content-Type 目录 1. HTTP Header 2. 文件请求和接口请求 3. 几种 Content-Type 3.1 application/x-www-f ...
- CSS 网格布局学习
转自:https://blog.jirengu.com/?p=990 CSS网格布局(又名“网格”)是一个二维的基于网格的布局系统,其目的只在于完全改变我们设计基于网格的用户界面的方式. CSS一直用 ...
- 使用Ant搭建Android开发环境入门
使用Ant搭建Android开发环境入门 使用Ant搭建Android开发环境,建立android项目 配置Ant环境 下载Ant:http://ant.apache.org/bindownloa ...
- TJU Problem 1065 Factorial
注意数据范围,十位数以上就可以考虑long long 了,断点调试也十分重要. 原题: 1065. Factorial Time Limit: 1.0 Seconds Memory Limit ...
- Markdown的写法
这里只介绍Markdown的书写格式.在github中显示出来. 当你看到下面两张图片时,你会发现区别还是蛮大的. 标题: 首先>就是最左边的那条竖线,但是=(最高阶标题)和-(第二阶标题). ...
- day11 python学习 函数的建立,返回值,参数
函数的定义主要有如下要点: def:表示函数的关键字 函数名:函数的名称,日后根据函数名调用函数 函数体:函数中进行一系列的逻辑计算,如:发送邮件.计算出 [11,22,38,888,2]中的最大数等 ...
- 使用点聚 weboffice 以及vsto、 web service 实现word 的自动化文档处理
开发环境的搭建: 1.visual studio 2010 2. 点聚web office 开发步骤 1. 创建word vsto 项目 比较简单 1. 添加任务窗格 页面如下: 代码如下: 1. 使 ...
- 无人驾驶之激光雷达&摄像头(主要from 速腾CEO 邱纯鑫分享)
无人驾驶之激光雷达&摄像头 (from 速腾CEO 邱纯鑫公开课分享) 根据听的一些讲座和看的书籍,个人感觉:目前现在的自动驾驶,根本问题还是在于感知(路况,周边物体,交通标识等等),控制的方 ...
- jsp渲染
SP与Servlet什么关系?JSP和ASP什么关系?下面我们一一来探讨. 第一个.jsp文件:<html> <head> <title> ...
- 带你走进Linux(Ubuntu)
类Unix系统目录结构 ubuntu没有盘符这个概念,只有一个根目录/,所有文件都在它下面 /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录.所有的东西都是从这里开始.当你在终端里 ...