iMind Developers Blog

iMind開発者ブログ

scikit-imageとscikit-learn付属のサンプル画像

概要

画像処理のコードを書いてブログに例を載せたい時に、拾い物の写真だと権利周りが気になる。

そんな時に使えることがあるskimageやsklearnのサンプル画像を貼っていく。

バージョン情報

  • scikit-image==0.15.0
  • scikit-learn==0.20.3

データの配置場所

scikit-imageの画像データは下記に配置されている。

import skimage
skimage.data_dir
    #=> /home/user/local/miniconda3/lib/python2.7/site-packages/skimage/data

実行している環境ではcondaのsite-packages配下に入っていた。

skimage - astronaut

宇宙飛行士のアイリーン・コリンズさん。

RGB。512x512。

from matplotlib import pylab as plt

plt.imshow(skimage.data.astronaut())

f:id:imind:20190430174055p:plain

skimage - camera

カメラ画像。

グレースケール。512x512。

plt.imshow(skimage.data.camera(), cmap='gray')

f:id:imind:20190430174439p:plain

skimage - checkerboard

チェッカーボード。

グレースケール。200x200。

plt.imshow(skimage.data.checkerboard(), cmap='gray')

f:id:imind:20190430174622p:plain

skimage - chelsea

猫のチェルシー。

RGB。300x451。

plt.imshow(skimage.data.chelsea())

f:id:imind:20190430175017p:plain

skimage - clock

ボケてる時計。

グレースケール。300x400。

plt.imshow(skimage.data.clock(), cmap='gray')

f:id:imind:20190430180650p:plain

skimage - coffee

コーヒーカップ。

RGB。400x600。

plt.imshow(skimage.data.coffee())

f:id:imind:20190430180915p:plain

skimage - coins

コイン。

グレースケール。303x384。

plt.imshow(skimage.data.coins(), cmap='gray')

f:id:imind:20190430181922p:plain

skimage - horse

馬の影絵。

グレースケール。328x400。

plt.imshow(skimage.data.horse(), cmap='gray')

f:id:imind:20190430181937p:plain

skimage - hubble_deep_field

ハッブル宇宙望遠鏡の写真。

RGB。872x1000。

plt.imshow(skimage.data.hubble_deep_field())

f:id:imind:20190430181955p:plain

skimage - immunohistochemistry

免疫染色? とりあえず何か細胞。

RGB。512x512。

plt.imshow(skimage.data.immunohistochemistry())

f:id:imind:20190430185414p:plain

skimage - lfw_subset

100枚の顔画像と100枚の非顔画像。

グレースケール。25x25で200枚。

faces = skimage.data.lfw_subset()

f, ax_list = plt.subplots(10, 10, figsize=(10, 10))
for row_num, ax_row in enumerate(ax_list):
    for col_num, ax in enumerate(ax_row):
        ax.imshow(faces[row_num * 5 + col_num], cmap='gray')
        ax.axis('off')

f:id:imind:20190430184913p:plain

skimage - logo

Scikit-imageのロゴ。

RGBA(RGBだけでなくAlphaが入ってる)。500x500。

plt.imshow(skimage.data.logo())

f:id:imind:20190430185524p:plain

skimage - microaneurysms

微細動脈瘤?

グレースケール。102x102。

plt.imshow(skimage.data.microaneurysms(), cmap='gray')

f:id:imind:20190430190115p:plain

skimage - moon

月面。

グレースケール。512x512。

plt.imshow(skimage.data.moon(), cmap='gray')

f:id:imind:20190430190132p:plain

skimage - page

スキャンされた本のページ。

グレースケール。191x384。

plt.imshow(skimage.data.page(), cmap='gray')

f:id:imind:20190430190702p:plain

記載されている文字

Region-based segmentation
Let us first determine markers of the coins and the background. These markers are pixels that we can label unambiguously as either object or background. Here, the markers are found at the two extreme parts of the histogram of grey values:
>>> markers = np.zeros_like(coins)

skimage - retina

網膜。ちょっときもい。

RGB。1411x1411。

plt.imshow(skimage.data.retina())

f:id:imind:20190430190828p:plain

skimage - rocket

ロケット。Falcon 9。

RGB。427x640。

plt.imshow(skimage.data.rocket())

f:id:imind:20190430191057p:plain

skimage - stereo_motorcycle

バイクのステレオ画像。

RGB。500x741。

left_image, right_image, drop = skimage.data.stereo_motorcycle()

figure, ax_list = plt.subplots(1, 2, figsize=(10, 5))
ax_list[0].imshow(left_image)
ax_list[1].imshow(right_image)

f:id:imind:20190430200512p:plain

両者を重ねて表示するとこんな感じ。

import cv2
dest = cv2.addWeighted(left_image, 0.5, right_image, 0.5, gamma=1.0)
plt.imshow(dest)

f:id:imind:20190430200655p:plain

skimage - text

文字を写真で撮ったもの。

グレースケール。172x448。

plt.imshow(skimage.data.text(), cmap='gray')

f:id:imind:20190430201136p:plain

sklearn - load_sample_images

flowerとchinaという2つのイメージが取得できる。

import sklearn
import sklearn.datasets
flower, china = sklearn.datasets.load_sample_images()['images']
f, ax_list = plt.subplots(1, 2)
ax_list[0].imshow(flower)
ax_list[0].set_title('flower')
ax_list[1].imshow(china)
ax_list[1].set_title('china')

f:id:imind:20190430210623p:plain

sklearn - fetch_lfw_people

skimageでも出てきた顔画像。但しこちらは13,233画像。

グレースケール。

200MBのデータでダウンロードするのに少し時間がかかる。

faces = sklearn.datasets.fetch_lfw_people()

f, ax_list = plt.subplots(5, 10, figsize=(7, 5))
for row_num, ax_row in enumerate(ax_list):
    for col_num, ax in enumerate(ax_row):
        ax.imshow(faces['images'][row_num * 10 + col_num], cmap='gray')
        ax.axis('off')

f:id:imind:20190430205906p:plain

sklearn - fetch_lfw_pairs

2つのペアになる顔画像が入っている。一部は同一人物の画像、一部は別人の画像。target attributeに同一人物か別人かのフラグが入っている。

faces = sklearn.datasets.fetch_lfw_pairs()

f, ax_list = plt.subplots(5, 2, figsize=(3, 10))
for i in range(5):
    for j in range(2):
        ax = ax_list[i][j]
        ax.imshow(faces['pairs'][i][j], cmap='gray')
        ax.axis('off')

f:id:imind:20190430212653p:plain

fetch_olivetti_faces

Olivetti faces data-setの画像。

1人につき10枚の顔画像が入っている。

faces = sklearn.datasets.fetch_olivetti_faces()

f, ax_list = plt.subplots(6, 5, figsize=(8, 10))
for row_num, ax_row in enumerate(ax_list):
    for col_num, ax in enumerate(ax_row):
        ax.imshow(faces['images'][row_num * 5 + col_num], cmap='gray')
        ax.axis('off')

f:id:imind:20190430213054p:plain

load_digits

8x8の手書き数字画像。

グレースケール。

digits = sklearn.datasets.load_digits()['images']

f, ax_list = plt.subplots(3, 5, figsize=(8, 5))
for row_num, ax_row in enumerate(ax_list):
    for col_num, ax in enumerate(ax_row):
        ax.imshow(digits[row_num * 5 + col_num], cmap='gray')
        ax.axis('off')

f:id:imind:20190430232454p:plain

改定履歴

Author: Masato Watanabe, Date: 2019-04-30 記事投稿