Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

69
LINES

< > BotCompany Repo | #1022975 // Learn Dogs vs Cats Prelude v1

JavaX source code (Dynamic Module) [tags: use-pretranspiled] - run with: Stefan's OS

Uses 911K of libraries. Click here for Pure Java version (11317L/62K).

1  
!7
2  
3  
cmodule LearnDogsVsCats > DynSingleFunctionWithPrintLog {
4  
  /*switchable*/ transient File dir = userDir("dev/dogs-vs-cats/train");
5  
  LPair<RGBImage, Rect> scaledImages;
6  
  
7  
  transient int eyeWidth = /*32*/10;
8  
  transient double eyeSurround = 0.5;
9  
  
10  
  start {
11  
    if (!dm_osBooting())
12  
      thread { doIt(); }
13  
  }
14  
15  
  void doIt {
16  
    // load scaled down test images
17  
    
18  
    L<File> allImageFiles = listImageFiles(dir);
19  
    Map<File, LPair<Rect, S>> markingsMap = new Map;
20  
    for (File f : allImageFiles)
21  
      mapPutIfNemptyValue(markingsMap, f, loadImageFileMarkings(f));
22  
    pnlStruct(markingsMap);
23  
    if (empty(markingsMap)) ret with print("No marked images found in " + dir);
24  
    
25  
    new Map<File, BWIntegralImage> iImages;
26  
    for (File f : keys(markingsMap))
27  
      iImages.put(f, BWIntegralImage(f));
28  
    print("Have " + n2(iImages, "integral image") + ", total size: " + str_toM(deepObjectSize(iImages)));
29  
    
30  
    new L<BWImage> allEyeImages;
31  
    new Map<BWImage, File> eyeImageSources;
32  
    for (File f : keys(markingsMap))
33  
      if (fileNameContains(f, "cat"))
34  
        for (Pair<Rect, S> mark : markingsMap.get(f))
35  
          if (eqic(mark.b, "eye")) {
36  
            BWImage img = bwResizeSmooth(iBWImageToBWImage(safeClipIBWImage(virtualScaledIntegralImageBW(iImages.get(f)),
37  
              growRectProportionally(eyeSurround, mark.a)
38  
            )), eyeWidth);
39  
            allEyeImages.add(img);
40  
            eyeImageSources.put(img, f);
41  
          }
42  
    showImage(mergeBWImagesVertically(allEyeImages));
43  
    
44  
    //showImage(scaleDownUsingIntegralImageBW(random(values(iImages)), 256));
45  
    //showImage(iBWImageToBWImage(virtualScaledIntegralImageBW(random(values(iImages)), 256)));
46  
47  
    //File f = random(allImageFiles);
48  
    File f = firstFileWithName(allImageFiles, "cat.2516.jpg");
49  
    print(f);
50  
    BWIntegralImage ii = new(f);
51  
    int w = /*256*/100;
52  
    IBWImage scaled = virtualScaledIntegralImageBW(ii, w);
53  
    float similarity = 0;
54  
    FoundImg found = null;
55  
    ImageSurface is = showImage(iBWImageToBWImage(scaled));
56  
    Rect r = null;
57  
    for (BWImage pat : allEyeImages) {
58  
      FoundImg lastFound = found;
59  
      found = or(bwImageSearch_best_virtualBig(scaled, pat, found == null ? 0f : found.sim), found);
60  
      if (neq(found, lastFound))
61  
        print(found + " / " + eyeImageSources.get(pat));
62  
      if (neq(foundImgRect(found), r)) {
63  
        r = foundImgRect(found);
64  
        overlaySelectionsOnImageSurface(is, ll(r));
65  
      }
66  
    }
67  
    print(found);
68  
  }
69  
}

Author comment

Began life as a copy of #1022929

download  show line numbers  debug dex  old transpilations   

Travelled to 7 computer(s): bhatertpkbcr, cfunsshuasjs, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt

No comments. add comment

Snippet ID: #1022975
Snippet name: Learn Dogs vs Cats Prelude v1
Eternal ID of this version: #1022975/36
Text MD5: d639672ed5f5a66eed814bd31166a766
Transpilation MD5: 71f5af299cadc5df4b93b518be197ee2
Author: stefan
Category: javax / a.i.
Type: JavaX source code (Dynamic Module)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2019-04-17 16:43:54
Source code size: 2555 bytes / 69 lines
Pitched / IR pitched: No / No
Views / Downloads: 278 / 828
Version history: 35 change(s)
Referenced in: [show references]