PDF 417 Detection and Decoding - iphone

Are there any free alternatives to Zxing's PDF 417 barcode detector and decoder?
The following 2 iOS libraries cannot seem to scan these type of bar codes, even though they say it's supported:
https://github.com/zxing/zxing
https://github.com/TheLevelUp/ZXingObjC/
I've read on Zxing's SVN/Google Code page that PDF 417 decoding is in the alpha stage, which probably explains why my the barcodes I'm testing on aren't being recognized.

After a few days of research and testing, I've come across the following, effective, yet non-free solutions:
RedLaser's SDK
Manatee Works' SDK

With iOS7 or above, you don't have to rely on third-party libraries for barcode detection or decoding. AVFoundation has built-in (and hence free) support for detecting both 1D and 2D barcodes including PDF417 and QR codes using the device camera.
You can find working examples here and here.

Related

Mobile barcode scanner for iOS/Android

I have done some research on barcode scanners available for iOS/Android and found ZXing framework to be a reliable free scanner SDK for auto-focus camera devices only(is this right?). My requirement is to scan a barcode on iOS/Android devices and the following operations should be performed:
Capture the barcode image and use a Barcode scanner SDK (like zxing) to scan the image and decode some details(like name, age and other personal details) from the barcode(I understand 2D barcodes formats like QR code are required for this purpose). Firstly is this possible and what will be the performance, speed, accuracy in this case?
But more importantly our customer has to design such barcode for us to decode(without any internet connectivity, all the details should be embedded in the barcode). Is this possible and if so are there any specific frameworks available, what are the essentials for such a framework?
Any help, useful links will be much appreciated. Thanks in advance!
Not sure about performance, speed and accuracy, but they'll be about the same as existing barcode scanner apps, since ZXing is a widely-used framework. You're right about needing a 2D barcode for that amount of data; bear in mind that the more data you encode into a 2D barcode, the harder it will be for a barcode reader to recognise.
ZXing can do this for you as well. zxing.appspot.com has the same code the ZXing website uses to generate barcodes. Just write an app that incorporates that and you're good to go. You can put any data you want into a 2D barcode, so it'll be up to you as to how you format that data. There are some existing formats (like vcards and web links), but it sounds like you want a custom format.
The easiest thing would be to have a look at the ZXing barcode reader app. Pretty much everything you want to do has already been done, and the Apache license is pretty permissive.

iphone camera used in app to scan (like red laser)

I am working on an app that requires the use of a camera to scan in text. Basically without getting too detailed, I need to point the camera at something (for my purposes here I will say a license plate) and i need to point the camera at the plate, and have it somehow save the digits into a string within the app. i guess its similar to Word Lens or red laser where it doesnt actually take a picture, it just scans the view and returns information. i have not been able to find much about this so any help on how to write this kind of code would be greatly appreciated!!
This is not barcode scanning. This is called OCR (optical character recognition), and there are some free and opensource libraries available that do this.
For example, Tesseract is a complete OCR engine written in C++ (it has a C++ interface, so it can be easily used from within an iOS app).
The other solution is gocr, the GNU Optical Character Recognizer. This is supposed to be a standalone program (a command line tool), but I've had success extracting its essential parts into a library (and I used it in an iOS project of mine as well).
OpenCV is a complete computer vision library. You can implement OCR using it - just google for the adequate documentation and tutorials.

Reading 1D barcodes using zxing for iPhone

is there a way to read 1d barcodes using zxing for iPhone? The zxing's homepage says it can only be used for QR Codes but has anyone ported 1D barcode scanning to iPhone or C++?
See Why don't 1D codes work on iOS devices? in the FAQ (which, FWIW, I wrote).
There are ports of 1D decoders but while there is lots of interest, no one has stepped up to maintain them. They're out of date with respect to the Java decoders which shows in their lower accuracy on the ZXing test set.

Smile Detection (Any alternative other than OpenCV ?)

Is there any library alternative to OpenCV which detects smile.
I dont want to use OpenCV as it sometimes fails to detect faces due to background.
Any one knw other library ? other than OpenCV ?
I would recommend having a look at The Machine Perception Toolbox (MPT Library).
I had a chance to play with it a bit at an Openframeworks OpenCV workshop at Goldsmiths and there is a c++ smile detection sample available.
I imagine you can try the MPT Library for iPhone with openframeworks or simply link to the library from an iphone project.
sometimes fails to detect faces due to
background.
An ideal lighting setup will guarantee better results, but given that you want to use this on a mobile device, you must inform your users that smile detection might fail under extreme conditions (bad lighting)
HTH
How are you doing smile detection? I can't see a smile-specific Haar dataset in the default OpenCV face detection cascades. I suspect your problem is training data rather than OpenCV itself.
Egawer is a good starting point if you need a working app to begin with.
https://github.com/Atrac613/egawer-iOS
I checked the training images of smileD_haarcascade_v0.05, an found that they include the full face. So, it seems to be a "smiling face" detector rather than a smile detector alone. While this seems easier, it can also be less accurate.
The best is to create your own Haar Cascade XML file, but admittedly most of us developers don't have time for that. You can improve the results considerably by equalizing the brightness of the image.
iOS 7 now has native support of simile detection in CoreImage. Here is the API diff:
For iOS 7, Yes, now you can do it with CoreImage.
Here is the API diff in iOS 7 Beta 2:
CoreImage
CIDetector.h
Added CIDetectorEyeBlink
Added CIDetectorSmile

Bar code recognition in apps

I wanted to ask how does Bar code recognition apps works (like Goggles)?
Where do they get the bar code information?
There are a variety of standard formats for barcodes. Typically, a barcode app will (somehow) apply some image processing to determine which kind of barcode it's looking at, and then interpret the image accordingly. Figuring out which kind of barcode boils down to making an educated guess based on some set of heuristics.
Once you know which kind of barcode you're working with, it's much easier to process it.
See also: QR Code#Standards.
Google Goggles and Google Shopper use a (modified) version of the ZXing library for barcode scanning. Not surprising as it is all from Google. The barcode data comes from internal sources and from sites on the web.