How to get the barcode region to red color??
Mostra commenti meno recenti
How can I write the code to get the red region works on vertical barcode image shown on figure 1(a&b).
Figure 2(a&b) is what I want.
I also attach my coding for your reference.
----
Figure 1a (Original image)

Figure 1b (Processed Image)

Figure 2a (Original Image)

Figure 2b (Processed Image)

Coding
rgb = imread('barcode12.jpg');
% Resize Image
rgb = imresize(rgb,0.33);
figure(),imshow(rgb);
% Convert from RGB to Gray
Igray = rgb2gray(rgb);
Igray = double(Igray);
% Calculate the Gradients
[dIx, dIy] = gradient(Igray);
B = abs(dIx) - abs(dIy);
% Low-Pass Filtering
H = fspecial('gaussian', 20, 10);
C = imfilter(B, H);
figure(),imagesc(C); colorbar;
Risposta accettata
Più risposte (1)
Chandra Kurniawan
il 27 Gen 2012
Hi, Kim
I agree with you. To determine the barcode just use boundingbox from regionprops :)
Irgb = imread('15wmqe9.jpg');
Irgb = imread('av672a.jpg');
Iresize = imresize(Irgb,0.33);
Igray = double(rgb2gray(Iresize));
[dIx dIy] = gradient(Igray);
B = imabsdiff(abs(dIx),abs(dIy));
H = fspecial('gaussian', 20, 10);
C = imfilter(B, H);
Th = max(C(:));
D = C < Th-10;
stat = regionprops(~D,'Area','BoundingBox');
for i = 1 : numel(stat),
Iarea(i) = stat(i).Area;
end
[C I] = max(Iarea);
bb = stat(I).BoundingBox;
imshow(Iresize); hold on
rectangle('position',bb,'edgecolor','r');


2 Commenti
Elysi Cochin
il 17 Ott 2012
i'm not getting it... my error is
??? Index exceeds matrix dimensions.
Error in ==> Untitled6 at 20 bb = stat(I).BoundingBox;
please can u rectify for me..
Image Analyst
il 17 Ott 2012
This is not a robust algorithm. It's fine tuned for these particular images. It may need to be tweaked for your images. Reply to the thread you started with the URL to your image.
Categorie
Scopri di più su Image Processing Toolbox in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!