OpenCVを使ってみる

OpenCVを使ってみた. 最近囲碁がマイブームなので,地合計算をしてくれるアプリを作りたい.

導入

これ見てやったらできた.いつもお世話になってます.

Mac OS X で OpenCV 3 + Python 2/3 の開発環境を整備する方法 - 意識低い開発者のBlog

簡単なのを試してみる

import cv2
import numpy as np

img = cv2.imread('sample.jpg')

# グレースケール
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imwrite('gray.png', gray)

# 二値化
_ ,binary = cv2.threshold(gray, 120, 255, cv2.THRESH_BINARY)
cv2.imwrite('binary.png', binary)

# エッジ抽出
edge = cv2.Canny(img, 50, 150)
cv2.imwrite('edge.png', edge)

# ネガポジ反転
negaposi = cv2.bitwise_not(edge)
cv2.imwrite('negaposi.png', negaposi)

元の画像 f:id:asdm:20150928103656j:plain

グレースケール f:id:asdm:20150928103731p:plain

二値化 f:id:asdm:20150928103741p:plain

エッジ抽出 f:id:asdm:20150928103827p:plain

ネガポジ反転 f:id:asdm:20150928103835p:plain

二値化画像とエッジの画像を組み合わせてみる

alpha = 0.5
result = cv2.addWeighted(negaposi, alpha, binary, 1-alpha, 0.0)
cv2.imwrite('result.png', result)

f:id:asdm:20150928114245p:plain

参考サイト

【シリーズ】「pythonとOpenCVを用いたCVプログラミング 」第8回:... | DERiVE コンピュータビジョン ブログ

Python OpenCV3で画像の画素値を二値化して出力 - from umentu import stupid

python/OpenCVで輪郭検出してたらなんかかっこいい画像が出来た - BlankTar

漫画風の画像に変換 | 詠み人知らずの備忘録