RaspberryPiで撮影した写真を、OpenCVを使って漫画風に加工する方法です。
ちなみに今回はUSBカメラを使って撮影した画像をそのまま漫画風に加工しています。
※カメラモジュールをOpenCVで使用した場合は下記のサイトを参考にしてください。
スポンサード・リンク
OpenCVのインストール
$ sudo apt-get install libopencv-dev $ sudo apt-get install python-opencv
画像の漫画化
参考にしたのはこちら
https://github.com/tanaka0079/python/blob/python/opencv/manga.py
#! /usr/bin/env python # -*- encoding:utf-8 -*- import cv2 import time import numpy as np cap = cv2.VideoCapture(0) # 3値化の閾値※数値は自分で調節 th1,th2 = 60,60 #キャプチャイメージ取得 r, img = cap.read() #いるかいらないかわからないが... time.sleep(3) #オリジナル画像も保存したい場合はコメントを解除 #cv2.imwrite("sample.jpg" , img) # 入力画像をグレースケールで取得 gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #スクリーン画像読み込み screen = cv2.imread("screen.jpg",0) #スクリーン画像リサイズ screen = cv2.resize(screen,(gray.shape[1],gray.shape[0])) # エッジ検出と色反転 edge = 255 - cv2.Canny(gray, 80, 120) # 画像の3値化 gray[gray <= th1] = 0 gray[gray >= th2] = 255 gray[ np.where((gray > th1)&(gray < th2)) ] = screen[ np.where((gray > th1)&(gray < th2)) ] # 3値画像とエッジ画像を合わせる gray = cv2.bitwise_and(gray, edge) #画像保存 cv2.imwrite("AnimeSample.jpg" , gray)
上記のソースを適当な場所に保存して実行するとUSBカメラより取得した画像を漫画風に保存してくれます。
おまけ:
USBカメラからの画像を定期的に漫画風に加工して作成したタイムラプス動画です。右の動画は加工前の写真です。