In this post, I would like to share a simple method on how to detect barcode in an image.
1) Convert image to grayscale, let it be 'img'
2) Now find derivative of the image in both horizontal and vertical direction, let them be 'imgx' and 'imgy' respectively.
imgx = d (img) / dx
imgy = d (img) / dy
3) Now subtract 'imgy' from 'imgx'.
res = imgx - imgy
Peculiarity of barcode is that, it has high gradient in horizontal direction, and low gradient in vertical direction. So their difference gives maximum value at barcode region
It is just a basic implementation. So in case of noise or other problems, additional preprocessing methods should be done.
Another problem is the rotation of the barcode. It works well only if barcode is horizontal. Otherwise, other preprocessing methods should be done to make barcode horizontal.
I have shared the code for this in an answer to a question on stackoverflow.com. Please visit the page.