I have found out the way to determine the barcode and currently working on cropping out the barcode. How can I write the code so that it can crop out the barcode?? I have paste my original image and my coding below.
Original Image
Processed Image
% Read Image
rgb = imread('barcode.jpg');% Resize Image
rgb = imresize(rgb,0.33);%figure(),imshow(rgb);
% Convert from RGB to Gray
Igray = rgb2gray(rgb);BW2 = edge(Igray,'canny');%figure(),imshow(BW2);
% Perform the Hough transform
[H, theta, rho] = hough(BW2); % Find the peak pt in the Hough transform
peak = houghpeaks(H); % Find the angle of the bars
barAngle = theta(peak(2));J = imrotate(rgb,barAngle,'bilinear','crop');%figure(),imshow(J);
Jgray = double(rgb2gray(J));% Calculate the Gradients
[dIx, dIy] = gradient(Jgray);%if min(dIx(:))<= -100 && max(dIx(:))>=100 || min(dIy(:))<=-100 && max(dIy(:))>=100
if barAngle <= 65 && barAngle >=-65 && min(dIx(:))<= -100 B = abs(dIx) - abs(dIy);else B = abs(dIy) - abs(dIx);end% Low-Pass Filtering
H = fspecial('gaussian', 20, 10);C = imfilter(B, H);C = imclearborder(C);%figure(),imshow(C);
figure(),imagesc(C);colorbar;
Best Answer