忍者ブログ

更新不定期日記

管理人の気まぐれで更新される正直どうでもいい更新不定期日記。

Node.jsでHello World

Node.jsについて


Node.jsの公式サイト

よく見るページはAPIドキュメント (API Docs)

Node.jsのインストールはnodistを介して行うと後々便利なのでまずそれを導入する

nodistのインストール (windows)

nodist release page
ここからNodistSetup-vx.x.x.exeをインストールするだけ
(2017/02/03現在 バージョン0.8.8)

コマンドプロンプト(cmd.exe)を起動して以下のコマンドを入力
nodist -v







nodistのバージョンが表示されれば正常にインストールされている
今後、nodistコマンドはNode.jsのインストールおよび更新のために使用していく

Node.jsのインストール (windows)

まず
Node.jsの公式サイト
で最新バージョンを確認する
現時点ではv6.9.5が安定最新版

コマンドプロンプト上で
nodist + vx.x.x






とすると自動でNode.jsがインストールされる
現時点ではnodist + v6.9.5とすれば安定最新版がインストールされる

次に、インストールした後にどのバージョンを使うかを宣言する必要があるので
nodist vx.x.x






とする(先ほどのコマンドから+を抜く)
現時点ではnodist v6.9.5とすればよい

最後に、実際にNode.jsがインストールされたかを確かめる
node -v






これをやってNode.jsのバージョンが正しく表示されればおk

今後nodeコマンドはNode.jsプログラムの起動に使用していく

npmの更新

次に、Node.jsのモジュールを管理するためのnpmを更新する
npm自体は先ほどNode.jsをインストールした際に付属しているが、
常に最新版を使用しておきたい

まず、npmが正常にインストールされているか調べる
npm -v







次に、npmを更新する
npm update -g npm






npmが最新版になったことを一応確認
npm -v





※バージョンが変わらなかったら現バージョンが最新

Node.jsを使う

コマンドプロンプト上で
node





とすると、すぐ下の行に
>





と出る
これは対話モードで、プロンプト上にコードを書いていくと
それに対応してすぐに結果を出力してくれる

試しに
> 3 + 7





として
10





と出たら正常に動作している


> .help




とすると、以下のような特殊なコマンドの一覧が出る

.break Sometimes you get stuck, this gets you out
.clear Alias for .break
.editor Enter editor mode
.exit Exit the repl
.help Print this help message
.load Load JS from a file into the REPL session
.save Save all evaluated commands in this REPL session to a file

> .exit




とすれば終了できる

あるいはCtrl + Cを2回繰り返すことでも終了できる

対話モードでコードを書くのは実践的ではないので、外部ファイルを実行する
任意のフォルダ(例えばC:\node)にtest.jsというテキストファイルを作成し、
console.log('Hello, world!');



と書いて保存する

次にコマンドプロンプト上で、まずcdコマンドを使って先ほど作成した
test.jsがあるディレクトリに移動する
(例)
cd C:\node




次に、nodeコマンドでtest.jsを実行する
node test.js




Hello, world!が表示されたら成功である

また、当然ながらcdコマンドを使用しなくても
node C:\node\test.js



などとフルパスで指定すれば同様に実行できる

さらに言うとlaunch.batなどを作成して
node test.js


としておけばダブルクリックするだけで起動できるので便利である

おぺんcvメモ


imread(ファイル名, 1)は画像をBGR形式で格納する(それぞれ0~255)
1ピクセルが[b, g, r]というリストであらわされる
それが2次正方行列になっている


img = cv2.imread('sample.png', 1)
print(img)

出力結果
[[[ 39 127 255]
[204 72 63]]

[[127 127 127]
[ 29 230 181]]]

imread(ファイル名, 0)は画像をグレースケールで格納する
0~255の整数が2次正方行列に格納される

img = cv2.imread('sample.png', 0)
print(img)

出力結果
[[173 98]
[127 203]]

BGR形式をグレースケールに変換
※単にimreadの0で読み込んだ時と結果が異なるので注意
img = cv2.imread('sample.png', 1)
grayImg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
print(grayImg)

出力結果
[[155 84]
[127 192]]

使えるのは
RGB2GRAY, BGR2GRAY,
RGB2HSV, BGR2HSV, HSV2RGB, HSV2BGR
などがある
(HSVは色相, 彩度, 明度)

img = cv2.imread('sample.png', 1)
imgHsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
print(imgHsv)

出力結果
[[[ 12 216 255]
[118 176 204]]

[[ 0 0 127]
[ 37 223 230]]]


ヒストグラムの計算
cv2.calcHist([img], [チャンネル番号], None , [256], [0, 256])

チャンネル番号は例えばimgがBGRであれば
Blueが0, Greenが1, Redが2である
imgがGrayなら0を指定すればよい


ヒストグラムの簡易プロット
from matplotlib import pyplot as plt
hist = cv2.calcHist([img], [0], None , [256], [0, 256])
plt.plot(hist)
plt.xlim([0, 256])