(* * Copyright (c) 2005, 2006, 2007 Abram Hindle * * This file is part of CaptchaBreaker * CaptchaBreaker is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * Foobar is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, see . *) open Images;; open OImages;; open Abez;; open Captchas;; open Shrinker;; let _ = let files = ref [] in Arg.parse [] (fun s -> files := s :: !files) "edge files"; let files = List.rev !files in List.iter ( fun file -> print_endline file; let outfile1 = "segments/" ^ (get_basename file) ^ ".shrink1.jpg" in let plotfile = "segments/" ^ (get_basename file) ^ ".data" in let rgb = Captchas.load_rgb_file file in let rgb = Shrinker.shrink_and_grow rgb in (* let rgb = Shrinker.shrink_and_grow rgb in *) rgb#save outfile1 (Some Jpeg) []; let segments = Shrinker.cumulative_seg rgb plotfile in let segbmps = List.map (Captchas.segment_of rgb) segments in let segbmps = List.filter ( fun bmp -> let width = bmp#width in let height = bmp#height in (width * height > 100) ) segbmps in Abez.iteri (fun i x -> let out = "segments/" ^ (get_basename file) ^ ".seg."^(string_of_int i)^".png" in x#save out (Some Png) []; ) segbmps; (* let shrunk = Shrinker.shrink rgb in shrunk#save outfile1 (Some Jpeg) []; *) ) files ;;