LoginSignup
4
8

More than 5 years have passed since last update.

scikit-imageで画像を(途中で怒られながらも)Normalized Cutしてみる

Last updated at Posted at 2015-02-10

coffee.png

plot_ncut_1.png

plot_ncut_2.png

こちらのサイトを参考にscikit-imageを動作テストさせてみた。
pipからインストールさせるとstable版がインストールされてしまうので、
gitから落としてpython setup.py install developするのが良いと思う。

インストールはこちらから。

ただ単にcoffeeでやっても仕方ないので、何か手持ちの画像で試してみる。
コードを下記のように書き換えた。

from skimage import graph, data, io, segmentation, color
from matplotlib import pyplot as plt


#img = data.coffee()
img = io.imread('test.jpg')

labels1 = segmentation.slic(img, compactness=30, n_segments=400)
out1 = color.label2rgb(labels1, img, kind='avg')

g = graph.rag_mean_color(img, labels1, mode='similarity')
labels2 = graph.cut_normalized(labels1, g)
out2 = color.label2rgb(labels2, img, kind='avg')

io.imsave('test_out1.png',out1)
io.imsave('test_out2.png',out2)

#plt.figure()
#io.imshow(out1)
#plt.figure()
#io.imshow(out2)
#io.show()

さっそく実行してみると・・・


‘module’ object has no attibute ‘rag_mean_color’

なんだコレ・・・。
しかもググっても解決策っぽいのが無い。

仕方ないのでscikit-imageのコードを見てみよう。
/to-site-packages-path/scikit_image-0.11dev-py2.7-linux-x86_64.egg/skimage/

graphの中をみてみると、__init__.pyにrag_mean_colorが書いてあるものの、肝心のメソッド本体がみっからない。
素直にgithubにあるdoc読んでみると

サンプルあるね・・・


plot_rag_mean_color.py

というファイルに


from skimage.future import graph

futureパスェ・・・
同じように指定してみる。

from skimage import data, io, segmentation, color
from skimage.future import graph
from matplotlib import pyplot as plt


#img = data.coffee()
img = io.imread('test.jpg')

labels1 = segmentation.slic(img, compactness=30, n_segments=400)
out1 = color.label2rgb(labels1, img, kind='avg')

g = graph.rag_mean_color(img, labels1, mode='similarity')
labels2 = graph.cut_normalized(labels1, g)
out2 = color.label2rgb(labels2, img, kind='avg')

io.imsave('test_out1.png',out1)
io.imsave('test_out2.png',out2)

#plt.figure()
#io.imshow(out1)
#plt.figure()
#io.imshow(out2)
#io.show()

無事動作。

4
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
8