2019年1月17日木曜日

開発環境

エレガントなSciPy (Juan Nunez-Iglesias (著)、Stéfan van der Walt(著)、Harriet Dashnow(著)、山崎 邦子(翻訳)、山崎 康宏(翻訳)、オライリージャパン)の3章(ndimageを使った画像領域のネットワーク)、3.1(画像は単なるNumPy配列)、3.1.1(演習: グリッドオーバーレイを追加する)の解答を求めてみる。

コード

Python 3

#!/usr/bin/env python3
import numpy as np
import matplotlib.pyplot as plt
import skimage


def overlay_grid(image: np.ndarray, spacing: int = 128) -> np.ndarray:
    image_gridded = image.copy()
    image_gridded[spacing:-1:spacing, :] = [0, 0, 255]
    image_gridded[:, spacing:-1:spacing] = [0, 0, 255]
    return image_gridded


if __name__ == '__main__':
    url_astronaut = ('https://raw.githubusercontent.com/scikit-image/'
                     'scikit-image/master/skimage/data/astronaut.png')
    astro = skimage.io.imread(url_astronaut)
    plt.imsave('sample1_0.png', overlay_grid(astro))
    for i, spacing in enumerate([64, 256], 1):
        image_gridded = overlay_grid(astro, spacing)
        print(image_gridded)
        plt.imsave(f'sample1_{i}.png', image_gridded)

入出力結果(Terminal、cmd(コマンドプロンプト)、Jupyter(IPython))

$ python3 sample1.py 
[[[154 147 151]
  [109 103 124]
  [ 63  58 102]
  ...
  [127 120 115]
  [120 117 106]
  [125 119 110]]

 [[177 171 171]
  [144 141 143]
  [113 114 124]
  ...
  [127 118 112]
  [124 115 108]
  [121 116 105]]

 [[201 194 193]
  [182 178 175]
  [168 165 164]
  ...
  [128 120 117]
  [126 116 112]
  [124 114 109]]

 ...

 [[186 170 176]
  [186 170 177]
  [183 168 170]
  ...
  [  0   0   0]
  [  0   0   1]
  [  0   0   0]]

 [[183 169 170]
  [182 167 171]
  [185 164 176]
  ...
  [  0   0   1]
  [  1   1   1]
  [  0   0   0]]

 [[184 167 172]
  [183 165 169]
  [180 162 171]
  ...
  [  0   0   0]
  [  1   1   1]
  [  0   0   0]]]
[[[154 147 151]
  [109 103 124]
  [ 63  58 102]
  ...
  [127 120 115]
  [120 117 106]
  [125 119 110]]

 [[177 171 171]
  [144 141 143]
  [113 114 124]
  ...
  [127 118 112]
  [124 115 108]
  [121 116 105]]

 [[201 194 193]
  [182 178 175]
  [168 165 164]
  ...
  [128 120 117]
  [126 116 112]
  [124 114 109]]

 ...

 [[186 170 176]
  [186 170 177]
  [183 168 170]
  ...
  [  0   0   0]
  [  0   0   1]
  [  0   0   0]]

 [[183 169 170]
  [182 167 171]
  [185 164 176]
  ...
  [  0   0   1]
  [  1   1   1]
  [  0   0   0]]

 [[184 167 172]
  [183 165 169]
  [180 162 171]
  ...
  [  0   0   0]
  [  1   1   1]
  [  0   0   0]]]
$

0 コメント:

コメントを投稿