開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Python 3.7 (プログラミング言語)
- パッケージ
エレガントな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 コメント:
コメントを投稿