Barkodu her açıdan tespit etmek için formülü nasıl değiştirebilirim? - MATLAB


14

Barkodu her açıdan tespit etmek için formülü nasıl değiştirebilirim?

formül

Gerçek görüntü İşlenmiş Görüntü

 rgb = imread('barcode4.jpg');
% Resize Image
rgb = imresize(rgb,0.33);
figure(),imshow(rgb);
% Convert from RGB to Gray
Igray = double(rgb2gray(rgb));
% Calculate the Gradients
[dIx, dIy] = gradient(Igray);
B = abs(dIx) - abs(dIy);
% Low-Pass Filtering
H = fspecial('gaussian', 20, 10);
C = imfilter(B, H);
C = imclearborder(C);
figure(),imagesc(C);colorbar

Yanıtlar:


8

Sahip olduğunuz filtre sizin için yeterince iyi çalışıyorsa imrotate, kaynak görüntünün birkaç döndürülmüş sürümünü oluşturmak için kullanabilirsiniz ve her birinde bulunan filtreyi kullanabilirsiniz ( bilinearmantıklı türevler almak için kullandığınızdan emin olun )


Tavsiye için teşekkürler. nasıl birkaç döndürülmüş sürümleri oluşturabilirim ?? Üzgünüz, MatLab'da yeniyim

Barkodu dikey veya yatay olarak almayı başardım. Ancak formül yalnızca yatay barkodu algılayabilir. Formülü hem dikey hem de yatay barkodu algılayabilecek şekilde değiştirebilir miyim?
Kim


7

Denkleminiz, X yönündeki degradenin büyüklüğünün Y yönünden tutarlı olarak daha yüksek olduğu alanları vurgular. Bunu her yöne doğru yapmak için, muhtemelen herhangi bir yöndeki degradenin büyüklüğünün yüksek olduğu alanları istersiniz.

Aşağıdakileri kullanmayı deneyin:

B = double(sqrt(dIx.^2 + dIy.^2) > 0)

Bunun temel olarak her kenarı vurgulayacağı anlamına gelmez, ancak alçak geçiren filtre, birbirine yakın birden fazla kenara ihtiyacınız olduğu anlamına gelir.


Kodlama için teşekkürler! Ama formülü değiştirmeye çalışırken kodu nereye koyacağımı bilmiyorum, her şey yeşil gitti.

Güncellenmiş sürümümü dene.
Nzbuu

Ama şimdi tüm görüntü kırmızıya dönüşür !!
Kim

Barkodu dikey veya yatay olarak almayı başardım. Ancak formül yalnızca yatay barkodu algılayabilir. Formülü hem dikey hem de yatay barkodu algılayabilecek şekilde değiştirebilir miyim?
Kim

Bu furmule'u test ediyorum '' B = çift (sqrt (dIx. ^ 2 + dIy. ^ 2)> 0) "işe yaramadı.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.