chiark / gitweb /
WIP identify island; Strip radar island name background
[ypp-sc-tools.db-test.git] / pctb / structure.c
index 37ac8c8..0c9750c 100644 (file)
@@ -497,7 +497,17 @@ void analyse(FILE *tsv_output) {
 void find_islandname(void) {
   Rect sunshiner;
   char sunshine[MAXIMGIDENT], archisland[MAXIMGIDENT];
-  const RgbImage *ri= page0_rgbimage;
+
+  RgbImage *ri= alloc_rgb_image(page0_rgbimage->w, page0_rgbimage->h);
+  const unsigned char *srcp;
+  unsigned char *destp, *endp;
+  for (srcp=page0_rgbimage->data, destp=ri->data,
+        endp= ri->data + 3 * ri->w * ri->h;
+       destp < endp;
+       srcp++, destp++) {
+    unsigned char c= *srcp & 0xf0;
+    *destp= c | (c>>4);
+  }
 
   cim= page_images[0];
   
@@ -541,6 +551,16 @@ void find_islandname(void) {
 //    islandnamer.br.y = larger_islandnamebry;
     debug_rect("islandnamer",1, islandnamer);
 
+    int x,y,i;
+    for (x=islandnamer.tl.x; x<=islandnamer.br.x; x++)
+      for (y=islandnamer.tl.y; y<=islandnamer.br.y; y++) {
+       if (RI_PIXEL(ri,x,y)[0] < 0x40) {
+         for (i=0; i<3; i++) {
+           RI_PIXEL(ri,x,y)[i]= 0;
+         }
+       }
+      }
+
     identify_rgbimage(ri, islandnamer, archisland, "island");
     fprintf(stderr,"radar: `%s'\n",archisland);
 
@@ -552,4 +572,5 @@ void find_islandname(void) {
     assert(!"not vessel");
   }
 
+  free(ri);
 }