OpenCVをPythonで使う場合の書き方を調べている

OpenCVをPythonで使う場合の書き方を調べている。

自分の場合はずっと、APIとしてC言語のインターフェースで動かして使っていた

IplImage *img1,*img2;
img1     = cvCreateImage( cvSize(640,480), IPL_DEPTH_8U , 3);
img2     = cvCreateImage( cvSize(640,480), IPL_DEPTH_8U , 1);
cvCvtColor( img1, img2, CV_RGB2GRAY); // color -> grayscale

これからcv::Matを使ったC++での使い方に馴染んでいこうとしている。

ちなみに、C++で同様の処理を書くとこのようになるようだ。

cv::Mat img1,img2;
cv::cvtColor(img1, img2, cv::COLOR_BGR2GRAY);

Pythonで使う場合も似た感じになる。(戻り値に結果が出るようにちょっとAPIが変更されている。)

img2 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY) # Python

Pythonの場合は、cv::Matに相当するものは無く、numpyの行列を使うので、numpyでいろいろ計算するのに慣れている人は使いやすいのだと思う。
例えば、画像をグレースケールで読み込んで表示させる処理は、こんな風に書ける。

import numpy as np
import cv2
img = cv2.imread('test.jpg',0) #grayscale
cv2.imshow('image',img)

断捨離と減量メモ2017 その23

6/5~6/11の分。

断捨離は、寝室兼PC部屋の片付けをやっている。
幾つかものを運び出した。
UPSとNASのラックを置いていたのを、別の部屋に設置場所を変えた。
キャスター台の中に小さい金属製のラックを置いて設置した。
UPSでフレッツ光の装置もついでに無停電化してみた。
それ以外、あまり進んでいない。

減量は、エアロバイクの自転車漕ぎ運動をほそぼそと続けている。
毎日はできてなくてちょっとサボリ気味で週の半分くらいしかやってないかも。

Pythonのnumpyで機械学習の行列計算を書く代わりにOpenCVのcv::Matが使えないだろうか

Pythonのnumpyで機械学習の行列計算を書く代わりにOpenCV(C++)のcv::Matが使えないだろうか?

例えばpythonだと2行2列の行列の内積の計算は次のように書く。

import numpy as np
A=np.array([[1,2],[3,4]])
B=np.array([[5,6],[7,8]])
X=A.dot(B)

続きを読む

機械学習 名古屋 分科会 #3に行ってきた

機械学習 名古屋 分科会 #3に行ってきた。

前回の続きだ。

今回は、第3章のニューラルネットワークをやった。
基本的には行列の掛け算と足し算で構築される。
行列の掛け算は、参考書ではnp.dot(A,B)という形で書いているが、A.dot(B)と書く方が短く書けるという。
後半部分は、既に学習済みの行列データ(重みデータ,バイアスデータ)をダウンロードして読み込んで動かすという内容なのだが、データの用意をしてなくてハンズオンでは試せなかった。
pythonのpickleという仕組みを使っていたのだが、参考書にはimportが書いてない。参考書のこのコードを動かすにはimportが必要なので注意。
続きを読む

超音波洗浄機で酒に超音波をあててみる – 番外編 – ぶどうサワーを漬けてみる

超音波洗浄機で酒に超音波をあててみるシリーズの番外編。

果実酒を作るときに超音波に当てると非常に短時間に作ることができるというので色々と試している。
ぶどうを試してみたいのだが、ぶどうをお酒に漬けると酒税法に違反して違法になってしまう。

酒に漬ける代わり酢に漬けて、ぶどうのフルーツサワーを作るのを試してみた。

続きを読む

室内で水耕栽培しているバジルが少し大きくなったので収穫してバジルをペーストにしてパスタを作った

室内で水耕栽培しているバジルが少し大きくなったので収穫してバジルをペーストにしてパスタを作った。

水耕栽培キットのGreenFarmというのを使っている
バジル(スイートバジル)を育てていたのが、だいぶ大きくなったので、半分くらい葉をむしって収穫した。
ミキサーを買って、ミキサーで粉砕してオリーブオイルと塩と混ぜて、バジルペーストを作ってみた。

FUKAI ミル&ジュースミキサー FJM-703GW(Amazon)
続きを読む