2012-01-25 23 views
-2

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

公式: Formula

原始图像: Original

处理的图像:Localization of Barcode

编辑如何绘制点??

编辑中绘制点:Plot the points

+0

问题是什么? –

+0

如何编写此代码? – Kim

+2

不要粗鲁,但如果你不知道如何在matlab中实现派生过滤器,你应该阅读关于图像处理的书籍(使用matlab)。从stackoverflow问题将这样的基础知识拼凑在一起肯定会是一个非常令人沮丧的体验。 – Niki

回答

3

我倾向于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; 

祝你好运!确保您在制作副本之前了解此代码。

+0

感谢您的代码!我可以理解!只是我不知道该怎么写! – Kim

+0

我该如何编写程序来读取垂直和水平条形码? – Kim

+0

那么,退后一步,考虑你的公式。您正在拍摄水平渐变图像(dIx)并减去垂直渐变图像(dIy)。要找到垂直条形码,您可以重复这两个条件切换的过程。在角度查找条形码将会涉及更多:)。 – aganders3