기계 학습을 이용한 컬러 일러스트 선화 자동 생성
처음에(^ω^)
그림을 그릴 수 있으면 뭔가는 어딘지 모릅니다. 그림을 그릴 수 있는 인간이 되고 싶다고 생각했습니다만, 무리였으므로 자동으로 만들 수 있는 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: 처음부터 시작하는 기계 학습 생활(심층 학습도 있어)
여기에 진척 상황 등을 실고 있습니다.
지금까지 쓴 것을 나열하고 있으니 봐주세요!
Reference
이 문제에 관하여(기계 학습을 이용한 컬러 일러스트 선화 자동 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/KengoKudou/items/b101cef271cc17fddd2d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#-----------------------------------------
#線画の自動生成
#-----------------------------------------
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: 처음부터 시작하는 기계 학습 생활(심층 학습도 있어)
여기에 진척 상황 등을 실고 있습니다.
지금까지 쓴 것을 나열하고 있으니 봐주세요!
Reference
이 문제에 관하여(기계 학습을 이용한 컬러 일러스트 선화 자동 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/KengoKudou/items/b101cef271cc17fddd2d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#特徴量フィルター生成
#フィルター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: 처음부터 시작하는 기계 학습 생활(심층 학습도 있어)
여기에 진척 상황 등을 실고 있습니다.
지금까지 쓴 것을 나열하고 있으니 봐주세요!
Reference
이 문제에 관하여(기계 학습을 이용한 컬러 일러스트 선화 자동 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/KengoKudou/items/b101cef271cc17fddd2d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(기계 학습을 이용한 컬러 일러스트 선화 자동 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/KengoKudou/items/b101cef271cc17fddd2d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)