I have an image file and I need to determine if the specified area of this image contains a signature. Or put it in terms of the end user: "Is this document signed?"
What I have done so far is to examine all the pixels contained in this area, calculate the average “darkness” and compare it with the reference value. If the difference in darkness exceeds a certain threshold, I believe that it is signed.
The problem with this (admittedly simplified) approach is that since the pixels of the signature itself are such a small part of the area, I have to use a very low darkness threshold, which leads to a lot of false positives. I can not distinguish a real signature from stray markings, spots, flare artifacts, etc.
To be clear ... I'm not trying to match any particular signature or set of signatures. That is, I don’t care who signed it only if it is signed.
Does anyone know of a Java library that can do this, or a better approach to this problem than what I'm doing now?
EDIT:
This is an example of the types of images that I work with. This document will be faxed to the recipient, signed and faxed. It will not be so clean that I have to look for a signature.
java image-processing opencv computer-vision
Todd gibson
source share