まずは、PILと文字Bの画像を作成してみましょう:
import Image, ImageDraw, ImageFont
image = Image.new("RGBA", (600,150), (255,255,255))
draw = ImageDraw.Draw(image)
fontsize = 150
font = ImageFont.truetype("/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf", fontsize)
txt = 'B'
draw.text((30, 5), txt, (0,0,0), font=font)
img = image.resize((188,45), Image.ANTIALIAS)
print type(img)
plt.imshow(img)
あなたが特にフォントへのパスで、それを行うには良い方法を見つけることができます。イメージを生成するのではなく読み込む方がよいでしょう。今
、実部:とにかく、私たちは今、上で動作するように何かを持っている
import mahotas as mh
img = np.array(img)
im = img[:,0:50,0]
im = im < 128
skel = mh.thin(im)
noholes = mh.morph.close_holes(skel)
plt.subplot(311)
plt.imshow(im)
plt.subplot(312)
plt.imshow(skel)
plt.subplot(313)
cskel = np.logical_not(skel)
choles = np.logical_not(noholes)
holes = np.logical_and(cskel,noholes)
lab, n = mh.label(holes)
print 'B has %s holes'% str(n)
plt.imshow(lab)
そして、我々は、コンソール(ipython)を持っている: Bは2つの穴を持っています
単純なグラフの実装は、Python辞書で簡単です。以下は[python docsの例](http://www.python.org/doc/essays/graphs/)です。 NetworkXは私がそれを使ったことはありませんが、残酷なようです。画像をグラフに変換することについては、興味深い問題のように見えますが、簡単な方法はわかりません。私は画像を操作するための多くの機能を提供する[opencv](http://opencv.org/)を使用しています。あなたはそこにいくつかの役に立つ部分を見つけるかもしれません。 – KobeJohn