简单的图像分析

Simple image analysis

本文关键字:图像 简单      更新时间:2023-10-16

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

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

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

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

有人告诉我,在MATLAB中编写此任务的代码很容易,但我不熟悉MATLAB。

这可以很容易地用c++、Java或c#完成吗?

有好的库吗?

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

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

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

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

这对你来说应该是很容易做到的,不需要任何外部软件;就像

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

位图文件格式很容易阅读。

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

你可以使用这个信息将字节流到数组中。我写过一些BMP阅读器;这是一件小事。

另外,虽然我不能保证它的易用性,因为我以前从未使用过它,但我听说EasyBMP工作得很好。

cim库应该可以帮助您。来自img FAQ:

1.1。什么是重庆图书馆

img库是一个开源的c++图像处理工具包。

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