【问题标题】:Applying the formula to determine the barcode - Matlab应用公式确定条形码 - Matlab
【发布时间】:2024-05-03 05:30:02
【问题描述】:

如何编写代码以将公式应用于图像并且结果是低通滤波的。红色区域是条形码对应的最高强度。

公式:

原图:

处理后的图像:

已编辑如何绘制点??

已编辑绘制点:

【问题讨论】:

  • 这个的编码怎么写??
  • 不要试图粗鲁,但如果你不知道如何在matlab中实现导数过滤器,你应该阅读图像处理方面的书籍(使用matlab)。将这样的基础知识从 * 问题中拼凑起来肯定是一种非常令人沮丧的体验。
  • 几周前我确实对此进行了一些研究,但我不知道如何编写代码!对不起,如果这是一个愚蠢的问题,但我真的尽我所能找到答案!没有难受的感觉!! :) PS。只是我的!

标签: image matlab image-processing computer-vision barcode


【解决方案1】:

我倾向于同意 nikie 的观点,如果你处于这个基本水平,你应该从一本书开始工作,但无论如何这里有一个答案。

I = imread('your_image');
# convert I to grayscale double as appropriate using rgb2gray(), double(), etc.

# calculate the gradients and the formula you provided
[dIx, dIy] = gradient(I);
B = abs(dIx) - abs(dIy);

# do your low-pass filtering
H = fspecial('gaussian', 20, 10);
C = imfilter(B, H);

imagesc(C); colorbar;

祝你好运!在制作 copypasta 之前,请确保您了解此代码。

【讨论】:

  • 感谢代码!!这个我能理解!!就是不知道怎么写!!
  • 如何编写程序来读取垂直和水平条形码??
  • 好吧,退后一步,考虑一下你的公式。您正在获取水平渐变图像 (dIx) 并减去垂直渐变图像 (dIy)。要查找垂直条码,您只需切换这两个术语即可重复该过程。寻找角度的条形码会更复杂:)。
  • 我还认为,为了使程序更好,更需要以角度查找条形码。你知道怎么做吗?
  • 我确实有一些想法,但这取决于您需要运行多快,等等。我还注意到您编辑了问题以添加有关绘制条形码端点/中点的内容。你应该开始新的问题,而不是在回答后编辑旧问题;他们会得到更多的关注。