c - 从扫描仪的输出中检测点阵图案

标签 c image-processing opencv

我是图像处理的新手。我有一个 bmp 格式的图像和一个扫描仪输出的 .bin 文件。 bin 文件具有 hex 值或原始数据。

首先我会解释这个过程。我们使用 13 位数字。每个数字都有一个以点格式表示的模式。例如,一个 13 位数字将有 20 个点。每个点的位置取决于数字。这是加密部分。现在这些点被重复打印。这些是使用扫描仪扫描的,扫描仪将上述文件作为输出。

下一步是处理这些输出以返回 13 位数字。我正在使用 openCVC。有人可以给我一些关于如何做到这一点的想法。我无法发布 bin 文件。但是bin文件的内容是这样的格式:

10 78 84 88 84 84 8c 88 88 8c 8c 90 88 88 8c 8c 90 90 88 90 8c 8c 8c 8c 8c 94 90 90 8c 90 90 94 8c 8c

我添加了应用于图像的精明边缘检测的输出。

output of canny edge detection done on the image

提前致谢...!

最佳答案

我不是真正的 opencv 用户。但是,假设您想要提取点区域,一种快速的肮脏方法是使用精明的边缘检测来识别二值图像中的连接组件。 See this .

一旦你标记了所有连接的组件,你可以检查 circularity每一个

然后对每个连通分量的圆度和/或面积(计算为每个连通分量中 1 的总和)应用过滤器。只有那些通过过滤器的才是你的点。

这可能不是最好的方法,因为合并到外圈的点可能会被过滤掉,但如果您只关心孤立的点,原则上它应该可以工作。此外,您可能希望适本地对图像设置阈值而不是应用边缘检测

祝你好运

关于c - 从扫描仪的输出中检测点阵图案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13086929/

相关文章:

algorithm - 有没有超快的算法可以在图片上找到线条?

opencv - Kinect红外 View 与Kinect深度 View 有偏移吗

c - 我的 makefile 有什么问题?

c - 将 C#defines 导出为 shell 变量

c++ - 如何在不同命名空间中使用双重声明的 extern "C"函数进行 clang 构建(如 msvc 和 gcc)

c - 使用 switch case 的奇数和偶数

algorithm - HDR图像创建算法

python - 如何改进具有线性SVM性能的HOG检测器以进行汽车检测?

python - 无法在 Windows 7 机器中使用 OpenCV 2.4.3、Python 2.7 打开 ".mp4"视频文件

python - 如何找到python库路径?