<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -6,6 +6,7 @@ module Energy = Sobel.Energy
 module Carving = Make(Energy)
 module BiasedEnergy = EnergyBias.Make(Energy)
 module BiasedCarving = Make(BiasedEnergy)
+module Insertion = Seaminsertion.Make(Carving)
 
 
 let time msg f x =
@@ -38,21 +39,29 @@ module Carver = struct
     let set_src_file self fn =
         self.srcfn &lt;- Some fn
 
-    let rec _carve_h i carved =
-        if i &gt; 0 then
-            _carve_h (i-1) (Carving.seam_carve_h carved)
-        else
-            carved
+    let _seam_del img eproc n =
+        if n &gt;= img.width - 10 then failwith &quot;Excessive horizontal downsizing.&quot;;
+        let rec _carve_h i carved =
+            if i &gt; 0 then
+                _carve_h (i-1) (Carving.seam_carve_h carved)
+            else
+                carved
+        in
+        let carved = Carving.make eproc img in
+        let carved = time &quot;Horizontal carving&quot; (_carve_h n) carved in
+        Carving.image carved
+
+    let _seam_add img eproc n =
+        let carved = Insertion.make eproc img in
+        let carved = time &quot;Horizontal carving&quot; (Insertion.insert_seams carved) n in
+        carved
 
     let carve_h self i dstfn =
         let src = match self.srcfn with None -&gt; failwith &quot;no data source&quot; | Some x -&gt; x in
         let dst = match dstfn with None -&gt; src ^ &quot;.carved_h.png&quot; | Some x -&gt; x in
         let img = Seamcarving.load_image src in
-        if i &gt;= img.width - 10 then failwith &quot;Excessive horizontal downsizing.&quot;;
-        let eproc =  Energy.processor in
-        let carved = Carving.make eproc img in
-        let carved = time &quot;Vertical carving&quot; (_carve_h i) carved in
-        let carved = Carving.image carved in
+        let eproc =  Energy.processor in (* biased image could be used here *)
+        let carved = if i &lt; 0 then _seam_del img eproc (-i) else _seam_add img eproc i in
         Seamcarving.save_image carved dst;
         self.dstfn &lt;- Some dst
         </diff>
      <filename>carve.ml</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>479da6be3bfca460660e0b3bcc853b2bdd6e2b7b</id>
    </parent>
  </parents>
  <author>
    <name>Ludovic Coquelle</name>
    <email>lcoquelle@gmail.com</email>
  </author>
  <url>http://github.com/khigia/eocarve/commit/2125715bcddfa2e7547ac54d60b84f0216c43b97</url>
  <id>2125715bcddfa2e7547ac54d60b84f0216c43b97</id>
  <committed-date>2008-05-08T23:29:50-07:00</committed-date>
  <authored-date>2008-05-08T23:29:50-07:00</authored-date>
  <message>Added expand possibility (seam insertion).</message>
  <tree>782ea023d54de189d83a625f1875edb529528e1c</tree>
  <committer>
    <name>Ludovic Coquelle</name>
    <email>lcoquelle@gmail.com</email>
  </committer>
</commit>
