简单的图像分析
Simple image analysis
我正在寻找一种方法,软件或简单的图像分析库。
输入图像将是一个白色的背景,上面有一些随机的小黑点。
我需要生成一个.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++程序中处理图像
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 在c++中用vector填充一个简单的动态数组
- (C++)分析树以计算返回错误值的简单算术表达式
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 我的简单if-else语句是如何无法访问的代码
- STL容器用于简单的图像分割
- 来自图像的简单视频制作器
- 使用vtkDataImage渲染一个简单的图像
- 如何使用ImageMagick在图像中简单显示
- 什么是最简单的*正确*的方法来检测矩形的图像
- 简单的JPG库(dll),仅用于保存JPG图像
- 用简单的opengl图像库(SOIL)加载一张图像(颜色空间:GRAY)
- 使用 C++/boost::asio/libcurl 的简单代理 - 无法下载图像
- 简单的图像分析
- 库的简单解释,以及如何在c++中使用它们进行图像使用
- 对avformat_find_stream_info的调用阻止对简单PNG图像进行解码
- 简单的库,用于在 Linux 上以C++显示 2D 图像
- 如何使用opencv在ios中编写简单的图像加载函数