From 7bbe939d139be7edd77378cfc9a2c3ec6287749d Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 14 Oct 2010 01:14:27 +0000 Subject: more contact work and preliminary business card upload --- FS/FS/Misc.pm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'FS/FS/Misc.pm') diff --git a/FS/FS/Misc.pm b/FS/FS/Misc.pm index 0e8d92b..fe8ac60 100644 --- a/FS/FS/Misc.pm +++ b/FS/FS/Misc.pm @@ -20,6 +20,7 @@ use Tie::IxHash; pkg_freqs generate_ps generate_pdf do_print csv_from_fixed + ocr_image ); $DEBUG = 0; @@ -850,6 +851,41 @@ sub csv_from_fixed { ''; } +=item ocr_image IMAGE_SCALAR + +Runs OCR on the provided image data and returns a list of text lines. + +=cut + +sub ocr_image { + my $logo_data = shift; + + #XXX use conf dir location from Makefile + my $dir = $FS::UID::conf_dir. "/cache.". $FS::UID::datasrc; + my $fh = new File::Temp( + TEMPLATE => 'bizcard.XXXXXXXX', + SUFFIX => '.png', #XXX assuming, but should handle jpg, gif, etc. too + DIR => $dir, + UNLINK => 0, + ) or die "can't open temp file: $!\n"; + + my $filename = $fh->filename; + + print $fh $logo_data; + close $fh; + + run( [qw(ocroscript recognize), $filename], '>'=>"$filename.hocr" ) + or die "ocroscript recognize failed\n"; + + run( [qw(ocroscript hocr-to-text), "$filename.hocr"], '>pipe'=>\*OUT ) + or die "ocroscript hocr-to-text failed\n"; + + my @lines = split(/\n/, ); + + foreach (@lines) { s/\.c0m\s*$/.com/; } + + @lines; +} =back -- cgit v1.1