#初めに(^ω^)
絵が描けると何かとはかどりますよね。絵が描ける人間になってみたいと思ったのですが、無理だったので自動で作れるAIを作成してみました。難しかったですが、楽しかったのでうれしかったです。
#作成したソースコード
#-----------------------------------------
#線画の自動生成
#-----------------------------------------
import numpy as np
import cv2
#保存先指定
file = './text11.txt'
#カラーで読み込み
img = cv2.imread('./shigure.png')
#グレースケールで読み込み
img2 = cv2.imread('./shigure.png',0)
#Numy配列に保存
im = np.array(img2)
#閾値設定による二値化処理
Threshold = 120
im[im < Threshold] = 0
im[im >= Threshold] = 255
#特徴量フィルター生成
#フィルター1
kernel = np.array([[0, -1, 0],
[-1, 4, -1],
[0, -1, 0]], dtype=np.uint8)
#膨張処理
dilation = cv2.dilate(im, kernel, iterations = 1)
#差分処理(膨張処理を行ったデータからグレースケール画像を引く)
Difference = dilation - im
#色反転
Difference[:, :] = 255 - Difference[:, :]
#テキスト出力
np.savetxt(file, Difference, fmt="%0.0f", delimiter=",")
#出力
print (Difference)
#画像出力
cv2.imwrite('./Difference.png', Difference)
##コード解説あれこれ
###特徴量フィルター生成
#特徴量フィルター生成
#フィルター1
kernel = np.array([[0, -1, 0],
[-1, 4, -1],
[0, -1, 0]], dtype=np.uint8)
フィルターの生成を行っています。中身の数字をいろいろいじってみると面白いかも
###膨張処理
#膨張処理
dilation = cv2.dilate(im, kernel, iterations = 1)
線の部分を太くしています。前景物体を膨張!
###差分処理
#差分処理(膨張処理を行ったデータからグレースケール画像を引く)
Difference = dilation - im
差分処理したことによって線画が浮き出ますね!
#参考文献
OpenCV-Pythonチュートリアルドキュメント
#目次のようなもの
Re:ゼロから始める機械学習生活(深層学習もあるよ)
ここに進捗状況等を載せてます。
今まで書いたものを一覧にしていたりするので見てみてください!