はじめに
中央の囲まれた部分が動いて見えるオオウチ錯視をmatplotlibで作成して表示する。
コード
![](https://sabopy.com/wp/wp-content/uploads/2020/01/oouchi3.png)
解説
モジュールのインポート
データの生成 1
![](https://sabopy.com/wp/wp-content/uploads/2020/01/oouchi1.png)
縦方向の模様を作成する。
データの生成 2
![](https://sabopy.com/wp/wp-content/uploads/2020/01/oouchi2.png)
横方向の模様を作成する。
図の表示
![](https://sabopy.com/wp/wp-content/uploads/2020/01/oouchi3.png)
ax.imshow(im,cmap=”winter”)により、縦方向の模様をベースとして表示する。
中心の円形の図は、patches.Circleの形状に横方向の模様を切り取ることで作成する。
切り取りは、img.set_clip_path(patch)で行うことができ、imgをpatchの形状で切り取って表示することができる。
楕円のオオウチ錯視
切り取る形状はpatchesの種類を変えることで容易にできる。
![](https://sabopy.com/wp/wp-content/uploads/2020/01/oouchi4.png)
正方形のオオウチ錯視
![](https://sabopy.com/wp/wp-content/uploads/2020/01/oouchi5.png)
参考
オオウチ錯視
錯視
![](https://sabopy.com/wp/wp-content/uploads/2019/12/clip_circle-160x90.jpg)
[matplotlib] 42. 画像を任意の形に切り取る
matplotlibのimshowで画像を任意の形状で切り取って表示する方法について解説する。
matplotlib.axes.Axes.set_clip_path — Matplotlib 3.1.0 documentation
コメント