What's the puzzle? Is the puzzle to scan the image can reconstruct the graph - and once you've done so, count the triangles? Or can you just give the edges and vertices to the program as input? In the latter case, the puzzle becomes really simple, as any non-trivial 3-cycle will be a triangle. (JH - HF - FJ is a trivial cycle, but JB - BI - IJ isn't).