モーリーのメモスマートフォン用の表示で見るモーリーのメモアプリ開発等(プログラミング、CG作成)、興味を持ったことを実践してまとめるブログです。JavaScript<前置き>画像から文字を読み込むOCRについて調べていたら、Tessract.js(テッサラクト・ジェイエス)というライブラリを発見しました。なんと純粋なJavaScriptで書かれているとのこと。60以上の言語を認識出来るらしいです。手順に従ってHTMLに組み込んでみましたが、ブラウザがローカルデータへのアクセスを制限されているため失敗しました。ブラウザにアクセス許可を与えるのは怖いなと思ったのですが、他に『Tesseract.jsをnpmでインストールして、requireして使う方法』が書いてありました。出てきた用語だいたいわかりません。npm?、require?、どういうこと?と思って調べると、まずはNode.jsを導入する必要があることがわかりました。Node.jsは、従来のHTMLに組み込むJavaScriptとは別物でしたが、調べるとBrowserifyという従来のJavaScriptと結びつける方法もあるようなので、中々おもしろそうです。いうことで、名前は知っていたものの横目で見るだけだったNode.jsをこれを機に導入することにしました。<ここから本題>調べたところNode.jsを直接インストールするより、Homebrew→Nodebrew→Node.jsの順にインストールするのが後々を良いようです。その理由となるそれぞれの役割について、簡単にですがまとめました。Capitan)では問題は起きていません。実際にインストールした手順をまとめました。私が今回使用した環境です。1.0.10Node.js(ノード・ジェイエス)とは?公式サイト:https://nodejs.org/ja/最初はJavaScriptで使えるライブラリの1つかと思いましたが、そうではなく実行環境そのものでした。Webアプリはブラウザとサーバーでやりとりします。Node.jsは、このサーバー側の処理をJavaScriptで書くことが出来る実行環境です。普通のJavaScriptはブラウザ側で動くので、対照的に『Node.jsはサーバーサイドJavaScriptです。結局どこでどうするもの?と言えば、テキストエディタで書いて、コマンドライン(『ターミナル』)で実行するJavaScriptの実行環境です。色んな人が作った便利なライブラリ(世界最大のオープンソースライブラリ)を利用できます。Moduleの略)とは?公式サイト:https://www.npmjs.com/npmは、Node.jsのパッケージマネージャです。依存関係の整理などをするツールです。npmは、Node.jsをインストールすれば使用できます。Homebrew(ホームブリュー)とは?公式サイト:http://brew.sh/index_ja.htmlHomebrewは、macOS用のパッケージ管理マネージャです。使用するバージョンの切り替えなどを楽にするものです。インストールの際に、依存関係にあるソフト(実行するのに必要なソフト)があれば、自動的にインストールしてくれます。コマンドラインツールの導入を一元管理します。Nodebrew(ノードブリュー)とは?公式サイト:https://github.com/hokaccha/nodebrewNodebrewは、Node.jsのバージョン管理ツールです。使用するバージョンの切り替えなどを楽にするものです。ん?、Homebrewと同じ?それならNode.jsもHomebrewで良いのではと思いましたが、違いました。↓HomebrewとNodebrewの違いNodebrewは、Node.jsの過去のバージョンも簡単にインストール出来ますが、Homebrewは基本的には無理です。HomebrewとNodebrewは、それぞれのリポジトリ(貯蔵庫)にあるソフトをインストール出来ます。Nodebrewは、Node.jsの多く(全部?)のバージョンをリポジトリで管理していますが、Homebrewは1つだけです。下図左はHomebrew、右はNodebrewでインストール出来るNode.jsを検索した結果です。Node.jsは更新頻度が高く、バージョン間の互換性の問題もあるので、Nodebrewのような専用のバージョン管理ツールが必要となるようです。Manager)というツールは、Nodebrewと同目的のものです(npmと名前がややこしい)。Nodebrewの方が主流っぽいです。Homebrewをインストールここから、Homebrew→Nodebrew→Node.jsの順にインストール作業を行います。Homebrewのインストールからです。公式サイトのGitHubに書かれている要件は下記の通りです。Toolsインストール要件を満たしているか確認して、必要であればインストールします。machdep.cpu.brand_stringCPUの情報が表示されるので、その中にIntelの文字があればOK。-productVersion表示されたバージョンが、10.10以降ならOK。-versionバージョンが表示されればOK(インストール済み)。Toolsを単独でインストールします。Toolsは同時にインストールされるそうです。下記のリンクからインストールします。Toolsを選んでダウンロードOSのバージョンに合わせて選択して下さい。Betaは避けたほうが良いかも。https://raw.githubusercontent.com/Homebrew/install/master/install)"*上記は最新と異なる可能性もあるので、公式サイトで最新のコマンドを取得してから実行して下さい。help』と入力して実行すると、コマンドの一覧が表示されます。doctorすると、実行環境の問題点とその解決方法が表示されます。私の場合は、下記のように表示されました。Store.最初の文章に『これらの警告は、Homebrewのメンテナがデバッグに使用するだけなので、Homebrewの動作に問題がなければ無視して下さい。~/.bash_profile』を実行しました。~/.bash_profile』を実行してパスを反映します。doctor』を実行すると最初の警告は消えてました。2個目はXCodeが古い云々は、無視することにしました。NodebrewをインストールHomebrewを使ってNodebrewをインストールします。『ターミナル』で、下記のコマンドを順次実行します。-help下記のようにヘルプが表示されれば、インストール完了です。source)以下略Node.jsをインストール『ターミナル』で、下記のコマンドを順次実行します。latest』とコマンドを実行します。インストールしたものから、使用するバージョンを選択*1つしかインストールしていなくても選択する必要があります。-vバージョンが表示されれば、Node.jsのインストールは完了です。下記のように表示されてNode.jsのインストールに失敗します。-v』で、動作確認した際に、下記のように表示されて失敗します。World!』を実行します。対話モードにすると『ターミナル』でJavaScriptのコードが直接実行出来ます。『ターミナル』で、下記のコマンドを順次実行します。World!");下記のように表示されます。c』を2回連続で押して抜ける方法もあります。hello.js『ターミナル』に、下記のように表示されます。World!Tesseract.jsを試すNode.jsの導入のきっかけとなった(※冒頭の前置き参照)Tesseract.jsを試します。Tesseract.jsは、OCR機能を実装するためのライブラリです。作業フォルダ(例:/Users/ユーザ名/Desktop/workspace)に、下記の画像をtest.pngという名前で保存コレ↓画像です。画像はGIMPで、フォント名:Sans、フォントサイズ:24px、行間:12で作成しました。tesseract.js作業フォルダにTesseract.jsライブラリがインストールされます。ocr_test.js下記のように結果が表示されました。engine.画像内の文字サイズによっても、読み取り精度が変わります。フォントサイズを18pxにすると、Tesseract.jsの部分のピリオドが抜けました。他の文字は18pxでも正常に読み込めました。--depth=0下記のように表示されます。tesseract.js@1.0.10グローバルのパッケージのバージョンの確認は、-gオプションを付けます。-gあとがき分からないことだらけなので、色々調べながら作業しました。ライブラリやツールがたくさんありますが、流行り廃りもあり、同系統の機能のものがある場合はどっちを選べばいいのかなと困る場合もありそうです。情報収集をして実際に試しながら現在のNode.jsの作法に慣れたいと思います。先人は多いようなので、探せば情報はあるはず、、と期待します。↑の記事のプログラムの派生版です。Codeでデバッグする!:Node.jsNode.jsのデバッグ環境が欲しい!ということで調べると、Visual...2016-12-12同期・非同期処理で、フォルダ内のファイルを列挙する!:Node.js↓こちらの記事で、Node.jsの環境を作成しました。(8)参加グループプログラミングリンクはてなブログブログをはじめる週刊はてなブログはてなブログProはてなブログをはじめよう!mmorleyさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。