在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
  1. 显示每个物理cpu的核数
cat /proc/cpuinfo | grep 'cpu cores' | uniq
  • 1
  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并行代码的更多相关文章

  1. ajaxfileupload批量上传文件+图片尺寸限制

    1.首先展示ajaxfileupload代码,在这里修改为批量上传 //ajaxfileupload不展示全部代码,这是修改前与修改后代码对比,目的是上传多个文件 createUploadForm: ...

  2. Python3.7 练习题(三) 将指定目录下的图片进行批量尺寸大小处理

    # 将指定目录下的图片进行批量尺寸大小处理 #修改图片尺寸 导入Image os 快捷键 alt+enter import os from PIL import Image def process_i ...

  3. python:批量修改文件名批量修改图片尺寸

    批量修改文件名  参考博客:https://www.cnblogs.com/zf-blog/p/7880126.html 功能:批量修改文件名 1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  4. node实现批量修改图片尺寸

    前言 大家在工作中肯定有没有遇到过图片尺寸和我们要求的尺寸不一致的情况吧?通常我们会在网上找一下找在线的或者下载一个小工具,再或者通过ps的批处理解决.但是,作为程序猿,当然还是通过代码来解决这种小问 ...

  5. .NET 调整图片尺寸(Resize)各种方法

    本文中如无特别说明 .NET 指 .NET 5或者更高版本,代码同样可用于 .NET Core 前言 调整图片尺寸最常用的场景就是生成缩略图,一般为保持纵横比缩小,如果图片放大会使图片变得模糊,如果确 ...

  6. 将“Cocos2dx-截屏并设置图片尺寸 ”中cocos2d-x代码转换为2.2的代码

    Cocos2dx-截屏并设置图片尺寸: http://www.cocos2dev.com/?p=522 2.2 代码如下: void HelloWorld::screenShoot() { CCSiz ...

  7. 使用Adobe Photoshop CC 2015批量修改图片尺寸

    最近在工作中遇到一个问题,当时客户给的图片尺寸与我要求的图片不符,由于图片非常的多,如果一张一张的修改,十分的麻烦,后来经过一位同事的指点,发现Adobe Photoshop CC 2015可以实现批 ...

  8. Shell脚本批量修改图片尺寸

    #!/bin/sh function scandir(){ local cur_dir parent_dir workdir workdir=$ cd ${workdir} if [ ${workdi ...

  9. springmvc处理上传图片代码(校验图片尺寸、图片大小)

    package com.maizuo.web.controller; import com.maizuo.domain.Result; import com.maizuo.util.Constants ...

随机推荐

  1. 掌握 javascript 核心概念 最好的教程 系列 之一

    链接 新链接 函数优先, 在扫描创建变量阶段, 会先收集函数, 如果前面有同名函数或者变量, 这个新函数会覆盖前面同名的: 而如果这时候是变量, 则不能去覆盖前面已有的值. function test ...

  2. Tomcat学习之二:tomcat安装、配置及目录文件说明

    我们看到tomcat目录/bin文件夹里有个tomcat6w.exe,顾名思义就是tomcat以window方式显示控制台.第1次点击打开它时候,可能会提示:tomcat指定的服务未安装,此时我们可以 ...

  3. Nexus私服的安装与配置

    Nexus的安装与配置 仅以此文,献给陷入懒癌晚期的小伙伴们. 本文基于nexus 3.xx .0. What?Why?When?Who?Where? Sonatype Nexus是一款maven仓库 ...

  4. RCNN、SPP-net、Fast-RCNN和Faster-RCNN

    RCNN RCNN (Regions with CNN features) 的核心思想是把图像划分成N(2000)个独立的区域,分别提取每个区域的CNN特征,然后把这些特征使用SVM等分类器进行结果预 ...

  5. Linux运维常用150个命令

    Linux运维常用150个命令 转载自:www.cnblogs.com/bananaaa/p/7774467.html 命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更 ...

  6. 【机器学习算法】bagging算法

    参考 1.AdaBoost从原理到实现: 完

  7. Vue拖拽组件

    vue开发公众号项目,***产品需要添加一个新的功能.拖拽功能.一听简单.百度上轮子挺多,直接拉一个过来用着就行.然鹅...兴奋之余,却失望至极.东西很多,没有一个能使得.你让我失望,那我就让你绝望. ...

  8. MP算法、OMP算法及其在人脸识别的应用

    主要内容: 1.MP算法 2.OMP算法 3.OMP算法的matlab实现 4.OMP在压缩感知和人脸识别的应用 一.MP(Matching Pursuits)与OMP(Orthogonal Matc ...

  9. HDU 2544:最短路

    最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  10. ElasticSearch(五):简单的ElasticSearch搜索功能

    这里主要是一些简单的ElasticSearch的搜索功能,复杂的搜索,比如过滤,聚合等以后单独在写 1. 搜索全部 GET book/_search 直接搜索全部,下面是对搜索结果的详细介绍:默认情况 ...