2012-01-25 3 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; 

행운을 빈다. copypasta를 만들기 전에이 코드를 이해해야합니다.

+0

코드 주셔서 감사합니다! 나는 그것을 이해할 수있다 !! 단지 그것을 쓰는 법을 모른다! – Kim

+0

수직 및 수평 바코드를 읽도록 프로그램을 코딩하는 방법은 무엇입니까 ?? – Kim

+0

음, 조금 뒤로 물러나서 수식을 고려하십시오. 가로 그라디언트 이미지 (dIx)를 가져 와서 세로 그라디언트 이미지 (dIy)를 뺍니다. 수직 바코드를 찾으려면이 두 용어를 전환하여 프로세스를 반복하면됩니다. 각도에서 바코드를 찾는 것은 좀 더 복잡 할 것입니다 :). – aganders3