我正在寻找用于简单图像分析的方法,软件或库。
输入图像为白色背景,上面有一些随机的小黑点。
我需要生成一个表示这些点坐标的.txt文件。也就是说,如果图像中有三个点,则输出将是一个文本文件,其中包含三个坐标的表示,(x1,y1),(x2,y2)和(x3,y3)。
我在网上搜了几个小时,没找到合适的东西,我发现只有复杂的图像处理程序。
我被告知在MATLAB中为此任务编写代码很容易,但我对MATLAB不熟悉。
使用C ++,Java或C#可以轻松完成吗?
任何好的图书馆?
答案 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也能正常工作。