MIT FiveK图像转化--DNG到TIFF,TIFF到JPEG
MIT FiveK图像转化--DNG到TIFF,TIFF到JPEG
MIT FiveK数据库是研究图像自动修饰算法会用到的基准数据库,然而那个网页上提供给我们的5000张原始图像的格式为DNG格式(一种raw格式),需要我们自己应用dcraw对图像进行处理;同时,经过专家修饰过的图像被分散到不同的链接下进行下载(下载的爬虫,可以参考这篇博客),而且格式为16位tiff格式,差不多总共两三百G的大小。数据集非常庞大,而且dng格式不利于程序的处理,因此博主希望能够将这些图片全部都转为最为常见的sRGB空间的JPEG格式,下面就介绍具体操作方法。
注:所用的系统为Ubuntu系统
1、应用dcraw将DNG格式转为16位TIFF格式
首先,需要将原始的数据集从本网站上下载下来,将分散到数个文件夹中的DNG图片放入同一个文件夹中,然后对逐个文件应用dcraw来进行处理,转为16位TIFF文件,色彩空间为Pro Photo,shell脚本如下:
chmod a+rwx DNG2TIFF.sh
filelist=$(ls *.dng | tr " " "\?") #获得文件夹中所有的文件的文件名(这一处理可以解决文件名中有空格的问题,读取完整的文件名)
#遍历dng文件,用dcraw进行处理
for file in $filelist
do
dcraw -o - -T "$file" #对图片进行处理,最后路径上加双引号是因为有的路径之间是有空格的,添加双引号可以避免shell将空格认为分割符号
rm -f "$file" #删除原始DNG文件
echo "$file" 'done!'
done
其中主要需要注意的点是,这个数据集中的某些文件(共29个)的文件名中是包含空格的,在使用shell脚本遍历文件名或者访问文件时尤其需要注意这一点。
2、应用ImageMagick将TIFF转为JPEG
ImageMagick可以说是ubuntu系统上面处理图片神器,可以对图像执行的操作非常丰富,感觉就像是命令行版本的photoshop一样。这一部分主要实现的转换为,将16位TIFF图片(Pro Photo色彩空间)转为JPEG(sRGB)。首先需要在TIFF文件夹内新建立一个名为“JPEG”的文件夹,用于放置处理之后的JPEG图片。同上一个转换一样,也需要注意文件名中的空格问题,具体shell脚本如下。
chmod a+rwx TIFF2JPEG.sh
filelist=$(ls *.tiff | tr " " "\?") #获得文件夹中所有的文件
#遍历tiff文件,用ImageMagick进行处理
for file in $filelist
do
file_name=${file%.*}
convert "$file" -profile sRGB.icc JPEG/"$file_name".jpeg #对每一张tiff格式的图片进行处理
echo "$file" 'done!'
done
其中sRGB.icc文件为sRGB的色彩配置文件,可以在这个地址下载 。
MIT FiveK图像转化--DNG到TIFF,TIFF到JPEG的更多相关文章
- matlab中文本文件与图像转化
一 将图片转化为txt文本文件 a=imread('picture.bmp'); //读取picture.bmp图片 b=rgb2gray(a); //由rgb图 ...
- python将图像转化为矩阵
Image.fromarray(matrix).show()
- JPEG图像密写研究(一) JPEG图像文件结构
[转载]转载自http://www.cnblogs.com/leaven/archive/2010/04/06/1705846.html JPEG压缩编码算法的主要计算步骤如下: (0) 8*8分块. ...
- tiff或tif文件的读取
以下是VC下读取TIFF文件的代码 char* szFileName = "K:\\地图\\fujian-DEM\\fujian1.tif"; TIFF* tiff = TIFFO ...
- Flex 加载tiff
gis系统常常要加载tiff,因为好多土地证书,各种文件都是扫描件,如果你是用as来写的前台,怎么加载呢,顺便说下用插件AlternaTIFF也是可以得不过浏览器加载这么多插件是不太好的. 首先TIF ...
- python图像处理(2)图像水印和PIL模式转化
模式转化: PIL模式转化:将图片转化成其他模式 # 我们将image图像转化为灰度图像(python) from PIL import Image img = Image.open('c:\\1.J ...
- matlab各类数据l图像之间的转化
matlab各类数据图像之间的转化 rgb类型转化为二值的步骤例如以下: 1.採用命令im2double将rgb类型转化三维的double >> str='E:\programing\Ei ...
- DNG格式解析
Author:Maddock Date:2015.04.22 转载请注明出处:http://www.cnblogs.com/adong7639/p/4446828.html DNG格式基本概念 DNG ...
- 第一节,初识OpenCV3-图像的读、写、显、格式转化等
之前一直在看深度学习,突然用到了对图像处理的东西,所以过来补充一下OpenCV基础. 就顺便从网上了买了一本OpenCV 3计算机视觉这本书,这本书比较薄,但是目前已经够我用了,在这里就记录一下我的学 ...
随机推荐
- 单元测试之NUnit三
NUnit 分三篇文章介绍,入门者可阅读文章,有基础者直接参考官方文档.初次写博客,望大家指点. 导航: 单元测试之NUnit一 单元测试之NUnit二 单元测试之NUnit三 除了Assert断言外 ...
- tomcat8 编写字符编码Filter过滤器无效问题
做一个解决全站的字符编码过滤器,过滤器类和配置如下: 过滤器类: package com.charles.web.filter; import java.io.IOException; import ...
- c++ 开发JNI
c++ 开发JNI C的预处理命令 #开头的就是c/c++的预处理命令 在编译之前 先会走预编译阶段 预编译阶段的作用就是 把 include进来的头文件 copy到源文件中 define这些宏定义 ...
- Python之流程控制——while循环
Python之流程控制--while循环 一.语法 while 条件: 执行代码 while就是当的意思,它指当其后面的条件成立,就执行while下面的代码. 例:写一个从0打印到10的程序 coun ...
- js 调用手机摄像头或相册并展示图片
效果图 手机浏览器.微信打开该网页,都支持调用摄像头拍照和打开相册. 先看最终结果: 每次点击“点击上传”,可以选择相册或者拍照,选完以后可以多展示一张图片,同时上传服务器. 点击“重新上传”,清空所 ...
- C#装箱与拆箱总结
装箱和拆箱是值类型和引用类型之间相互转换是要执行的操作. 1. 装箱在值类型向引用类型转换时发生 2. 拆箱在引用类型向值类型转换时发生 光上述两句话不难理解,但是往深处了解,就需要一些篇幅来解释了 ...
- SpringCloud(二)- 服务注册与发现Eureka
离上一篇微服务的基本概念已经过去了几个月,在写那篇博客之前,自己还并未真正的使用微服务架构,很多理解还存在概念上.后面换了公司,新公司既用了SpringCloud也用了Dubbo+Zookeeper, ...
- IdentityServer3学习记录(搭建IdentityServer项目)
记录下自己尝试搭建identityServer3的过程,便于自己记录遗忘时翻看,也能便于刚接触的新手简单了解下搭建的过程. 更详细的可以参考 https://www.jianshu.com/p/792 ...
- CF1028D Order book 思维
Order book time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...
- codeforces 816 B. Karen and Coffee(思维)
题目链接:http://codeforces.com/contest/816/problem/B 题意:给出n个范围,q个查询问查询区间出现多少点在给出的n个范围中至少占了k次 题解:很显然的一道题目 ...