PS派教程网 - PS教程 | Photoshop教程 | 数码暗房

计算图片中某种颜色所占的面积比例 - ImageMagick 方法

时间:2013-11-22 00:06来源:未知 作者:PS314 点击: 关键词:ImageMagick,Linux,Shell,正则表达式
通常,我们仅需要图片显示视觉信息,不过有些时候,还需要对图片中的信息进行分析。如,需要获得照片中某种颜色所占的面积比例。这听起来有些怪异,不过,在建筑设计或生物学等领域确实存在这样的问题。这篇教程将介绍如何用 ImageMagick 解决这一问题。
 
首先来看两张图,感谢 网友 xuewenxsh 提供的图片与文字说明。
 

A

 
ImageMagick图片颜色比例_A
 

B

 
ImageMagick图片颜色比例_B
 
这两张图是在 一次生物学实验中 拍摄的 电子显微镜下 植物细胞的照片。
A 和 B 都是用水稻根当实验材料,A 为对照,B 用 LipA (一种脂肪酶) 处理过。
为了方便观察细胞死亡的情况,我们用碘化丙啶 将实验材料染色,再到电子显微镜下观察。
A 只是细胞壁染上了红色,而 B 由于细胞死亡,核物质降解也被染成红色。
 
我们的目的是计算这两张图片中被碘化丙啶染色的部分所占的比例。
通过A 和 B 比例的差异,辅助我们分析实验结果。
 
这个例子涉及许多生物学知识,如果您不熟悉也没有关系。
您只要明白我们的目的是——
计算两张图片中 红色像素 所占的比例 即可。
 
我会介绍两种方法,一种是使用 Photoshop 的方法,另一种是使用 ImageMagick 的方法。
 
两种都相对准确,您可以根据需要选择不同的方法。
 
使用 Photoshop ,优点是便于操作,也比较直观,所见即所得。
缺点是仅能显示最终的统计结果,缺乏直接证据,因此缺乏说服力,不利于科研应用。
 
使用 ImageMagick ,正好与Photoshop方法相反,可以为最终结果提供直接证据,并且如果有许多相同规格的照片,可以进行批量处理。
缺点是操作有些复杂,需要一些计算机知识。
 
这篇文章介绍的是 第 2 种 方法: ImageMagick 方法
 
 

思路:

 
1.裁切图片以减少干扰。(使用 Photoshop ,GIMP 或者 ImageMagick 的 convert 命令)
 
2.输出图片中每一个像素点的颜色信息,生成一个TXT文件,每一行包含一个像素点。(使用 ImageMagick 的 convert 命令)
 
3.一共有多少行,就有多少个像素点。(使用 vim 或者 wc -l 命令)
 
4.筛选符合要求的行,从而得到符合要求的像素。(使用 perl 或者 sed 和 awk)
 
5.筛选出多少行,就有多少个符合要求的像素。(使用 vim 或者 wc -l 命令)
 
6.计算红色所占的面积比例。
 
 

说明:

 
1.我会以图片 A 为例进行说明。
 
2.我使用的是 Linux 操作系统,还会涉及一些 bash,Perl,正则表达式的知识。当然都是入门级的知识,因为我也是初学者,甚至有些知识是写这篇文章时才开始学的。
 
3.这个方法要输出图片中每一个像素点的颜色信息,因此,要求图片尺寸不能太大,否则可能会耗费很多时间或者占用很多系统资源。
 
 
5.文章写的有些仓促,难免会出现错误,如果您发现了希望您留言指出,谢谢。
 
 

软件环境:

 
Linux操作系统 (确切的说,应该叫 GNU/Linux):
我用的是 ArchLinux x86_64,官方网站 https://www.archlinux.org
其他版本如 Fedora, CentOS, Ubuntu 等也可以。
 
ImageMagick:6.8.7.6-1
 
Perl:5.18.1-1
官方网站 http://www.perl.org
也可以用 sed 和 awk 代替
 
Vim: 7.4.86-1
官方网站 http://www.vim.org
用来查看文件,非必需
 
不同的操作系统,安装软件包的方法也不同,例如安装 ImageMagick 。
 
ArchLinux:
sudo pacman -S imagemagick
 
FedoraCentOS: (未测试)
sudo yum install ImageMagick
 
Ubuntu: (未测试)
sudo apt-get install imagemagick
 
其他版本 Linux 请查阅官方文档。
 
新建一个文件夹,作为本教程的工作文件夹:
我用的是 当前用户 home文件夹 目录下的 test 文件夹,即
/home/isee(用户名)/test
把 A.jpg 和 B.jpg 拷贝到这个文件夹里。
 

责任编辑:PS314

第 1 页 - 共 3 页
顶一下
(10)
62.5%
踩一下
(6)
37.5%
------分隔线----------------------------

搜索

高级