简单的图像分析

时间:2011-08-28 06:46:39

标签: c++ image image-processing

我正在寻找用于简单图像分析的方法,软件或库。

输入图像为白色背景,上面有一些随机的小黑点。

我需要生成一个表示这些点坐标的.txt文件。也就是说,如果图像中有三个点,则输出将是一个文本文件,其中包含三个坐标的表示,(x1,y1),(x2,y2)和(x3,y3)。

我在网上搜了几个小时,没找到合适的东西,我发现只有复杂的图像处理程序。

我被告知在MATLAB中为此任务编写代码很容易,但我对MATLAB不熟悉。

使用C ++,Java或C#可以轻松完成吗?

任何好的图书馆?

5 个答案:

答案 0 :(得分:1)

任何语言都很简单。根据您输入的形式,您可能需要遍历所有这些(假设它是一个简单的矩阵 - 只需要两个嵌套循环,一个用于x坐标,一个用于y坐标),每当遇到黑点时 - 只需输出当前索引,这些索引将是点的x和y坐标。

对于库,除了将输入解码为这种矩阵形式(例如JPEG解码器)之外的任何东西都是过度的。

答案 1 :(得分:0)

我认为你不需要这种问题的图像处理库(如果我错了,有人会纠正我)因为这些库可能专注于图像处理而不是识别。您需要的是了解您所支持的图像格式(如何存储,如何解释等)和基本的C文件系统功能。

例如,如果您需要JPG文件格式,则只需计算每条扫描线的填充并逐个到达每条扫描线,并逐行扫描每条扫描线。您必须使用两个计数器,一个用于行,一个用于列。如果像素不是白色,那么你就有了坐标

答案 2 :(得分:0)

在没有任何外部软件的情况下,这是非常容易的。

之类的东西
for(y in [0..height]) {
   for(x in [0..width]) {
       if(pixels[y][x].color == BLACK)
           print("(%d, %d)", x, y);
   }
}

会起作用。

答案 3 :(得分:0)

CImg library帮助你。来自CImg FAQ

  

1.1。什么是CImg图书馆?

     

CImg Library是一个用于图像处理的开源C ++工具包。

     

它主要包含一个(大)单头文件CImg.h提供   可以在您自己的源中使用的C ++类和函数集,   加载/保存,管理/处理和显示通用图像。实际上   一个非常简单和令人愉快的工具包,用于编码图像处理的东西   在C ++中:只需包含头文件CImg.h,您就可以了   处理C ++程序中的图像。

答案 4 :(得分:0)

位图文件格式非常易于阅读。

http://en.wikipedia.org/wiki/BMP_file_format

您可以使用此信息将字节流式传输到数组中。我写了几个BMP读者;这是一件小事。

此外,虽然我不能保证其易用性,因为我之前从未使用它,但我听说EasyBMP也能正常工作。