首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像文件分析软件

图像文件分析软件
EN

Unix & Linux用户
提问于 2014-09-13 15:58:04
回答 1查看 3.6K关注 0票数 0

是否有程序来分析Linux的文件,特别是图像文件,它的功能类似于十六进制编辑器,它将显示在绘制图像的某些区域之后发生了哪些字节的变化等等。

EN

回答 1

Unix & Linux用户

发布于 2014-09-14 00:25:26

命令行方式

有各种命令行程序,如xxdhexdump,它们将向终端输出文件的十六进制内容。您可以使用vim编辑十六进制文件。见这个答案

你真的想这么做吗?你说你特别想分析图像文件。为此,最好使用编程语言。

使用编程语言

图像只是一个数字矩阵。例如,RGB映像可以表示为3个矩阵,其中包含0到255之间的值。5x5像素纯红色图像如下所示:

矩阵1(红平面):

代码语言:javascript
复制
255 255 255 255 255
255 255 255 255 255
255 255 255 255 255
255 255 255 255 255
255 255 255 255 255

矩阵2(绿色平面):

代码语言:javascript
复制
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

矩阵3(蓝色平面):

代码语言:javascript
复制
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

为了以这种方式分析图像,已经创建了各种工具。在图像处理领域,这些工具是相当标准的:

  1. MATLAB (矩阵实验室)最初就是为此目的而创建的。GNU主要与MATLAB兼容,可以代替MATLAB。
  2. Python是使用它的科学图像包操作图像的一个很好的开源替代方案。

它们既具有交互性,又非常容易使用。例如,MATLAB为您提供了一个>>提示,您可以在其中输入命令。没有必要进行汇编。

MATLAB/Octave示例

要读取图像:

代码语言:javascript
复制
>> im = imread('Penguins.jpg');

从图像中提取红色平面:

代码语言:javascript
复制
>> red = im(:,:,1);

这使用:操作符从图像的第一个z平面(红色平面)提取所有x坐标和所有y坐标。

要查看红色平面的最初5x5像素,请执行以下操作:

代码语言:javascript
复制
>> red(1:5, 1:5)

ans =

  116  118  118  120  118
  116  116  117  118  116
  118  117  117  118  118
  117  117  118  118  118
  119  118  117  118  118

我不会发布Python示例,但是这样做也很容易。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/155425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档