#!/usr/bin/env python
#coding:utf-8
# 画像をラベリング処理した後に
# 結果をmatplotlibにより可視化する
from __future__ import unicode_literals
import numpy as np
from scipy import ndimage
import pylab as plt
import cv2
def main():
# 画像をグレースケールで読み込む
img = cv2.imread("src_hd.bmp", 0)
# 読み込みエラーチェック
if img is None:
print "画像の読み込みに失敗しました。"
quit()
# 画像を2値化しておく
img = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]
# 構造化要素、8連結でラベリングしたいならこれを第2引数にする
stel = np.ones((3, 3))
# ラベリング処理
label_img, nb_labels = ndimage.label(img)
print "領域分割数:"+str(nb_labels)
# matplotlibに描画する(blurをオフにする)
plt.imshow(label_img, interpolation="nearest", cmap="spectral")
# カラーバーを追加する
plt.colorbar()
# 描画した画像を表示する
plt.show()
if __name__ == '__main__':
main()