目的
知財の図に結晶構造を使用する場合、グレースケールかつシンプルな図にする必要があります。VESTAだと適さない場合があるので簡単に変換する方法を備忘録として記しておきます。
VESTAでの処理
まずVESTAで結晶構造を表示し、Objects > Properties > Atoms でウィンドウを表示します。
MaterialのSpecularで黒色を選択し、Shininessを1にします。
Bondsタブでも同様の操作を行います。
適用すると、光沢が無くなった以下のような構造が得られます。
![vesta](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F334977%2F6c95d4fb-086a-404e-5e70-550ad5a76ec0.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=3feafe7ed7535edde8cf641b300ecad1)
この状態で画面キャプチャ等で保存します。
エッジ抽出
この画像ファイルを用いてエッジ抽出をすればグレースケールかつシンプルな図に変換できます。何を使っても良いですが、opencvを使うと以下のように変換できます。
import cv2
import matplotlib.pyplot as plt
import numpy as np
image = cv2.imread("vesta.png")
edges = cv2.Canny(image, 50, 200)
kernel = np.ones((3, 3), np.uint8)
edges = cv2.dilate(edges, kernel, iterations=1)
result = np.zeros_like(image)
result[edges > 0] = 0
result[edges == 0] = 255
fig = plt.figure(figsize=(10, 10))
plt.imshow(result, cmap="gray")
Canny
のパラメータは適宜変更してください。変換後は以下のような図になります。
![edge](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F334977%2F3ec8f2ae-f723-0581-f195-f3f95a234798.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=3b5dcf52bb24e43f227e38e6b666822b)
これに適当にラベルを振れば知財でも使いやすい結晶構造の図が取得できます。