フォトアルバム

2012年1月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

サイト内検索

最近のトラックバック

更新ブログ

ブログ powered by TypePad
Member since 11/2011

twitter

  • なう
  • 広告

2012年1月 8日 (日)

謹賀新年

あけましておめでとうございます。

1年に1度は、記事を追加しないと、風ログは中の人が消しちゃう仕様っぽいので、
毎年、あけおめくらいは書き込もうと思います。

今年もよろしくお願いします。

2011年11月10日 (木)

復旧中

システムトラブルにより、データが消えてしまいました。

現在、復旧作業中です。

今しばらくお待ちください。


2011/11/13追記:

チャロぐ出張所
https://sites.google.com/site/chalogbranch/

こっちは簡単には消えないはず…。


2012/01/07追記:

日付指定のUIが、ちょっと酷い(直接数値入力が無い。このため、マウスを何度もクリックしなければ過去の記事を作成できない)ため、復旧途中ですが諦めました。

今後は、未来に生きます。

2009年11月 8日 (日)

Webカメラ(USBカメラ)で本のバーコード読み取り

久しぶりの更新なので、近況報告。

東北の方行って来た。あと、車が10万km超えた。

最近、やたらと本が増えて、どうしようにも管理しなきゃならなくなった。

主に漫画なんだけど、何でこんなにあるのか(買ってきたのか)不思議だ。

管理するのに 私本管理Plus というソフトが良さげなので、試しに使ってみることにした。

しかし、これら本の情報をすべて手で入力するのはとても大変なので、本の裏にあるISBNを読み込んでくれるツールあるか探してみた。

見つからない無いので自作しようとしたけど、作ってる最中に ZBar というオープンソースのバーコード読み込むライブラリがあったので、それを使うことにした。

インストールしてみたけど、どうもカメラ認識してくれないので、その辺は DirectShowを使った、ビデオデバイスからのキャプチャ 最も簡単版 を参考(というか殆どコピペ)に作成。

試しに、デスノートの1~13巻+αを読み込ませた。

YouTube: Webカメラ(USBカメラ)を使ったISBNバーコードの読み取りテスト

縦や横や、ある程度の斜めなら認識してくれる。でも、ぼやけてると駄目っぽい。

全部で1000冊くらいありそうなので、横に並べての連続読み込みテストも。

YouTube: Webカメラ(USBカメラ)を使ったISBNバーコードの連続読み取りテスト

このペースなら、1時間あれば全部取り込めるかな。

一応、ソースとexeも公開しておきます。
ISBN_BarCodeReader_2011_1106.zipをダウンロード 786 KB (805,464 バイト)
誤認識もするので、使いたい方は自己責任でどーぞ。
(あと、ライセンス的にまずかったら、公開停止しますので教えて下さい)

<トラックバック>
   数百冊をわずかな時間で読書管理サービスに登録 (IT翻訳者Blog)
   Webで書籍管理 @ Kat-a-log

<コメント>
投稿: やまいち | 2010-04-04 02:59
    ISBNBarcodeReaderの映像見させていただきました。 ぜひ使わせていただきたいと思い、ダウンロードさせていただきました。バーコードをすぐに認識できました。でも、認識したコードをどうやって映像のようにテキストエディタにとり込んだらよいのかわかりませんでした。教えていただけるとうれしいです。

投稿: そうだい | 2010-04-11 14:59
ダウンロードありがとうございます。
レスが遅れて申し訳ありません。(あんまり見てないもので・・・)

テキストエディタに取り込む方法ですが、単純にSendInputというWindowsAPIを使用し、キーを押したイベントを発生させているだけです。
なので、メモ帳などを起動して、そっちをアクティブにすれば取り込まれるはずです。
(もしかしたら、テキストエディタによっては、取り込まれなかったり、Windows7などOSの違いによって駄目だったりするかもしれません)

投稿: やまいち | 2010-04-11 21:38
回答ありがとうございました。
ちゃんと取り込めました。

コメントを投稿したとき、テキストエディタをアクティブにしないでキャプチャしていたので、テキストエディタに取り込むことができませんでした。

今、ティストエディタをアクティブにして試してみたらうまく取り込めました。

メモ帳でもTeraPadでも取り込めました。

ありがとうございました。

投稿: 神埼 | 2010-11-20 20:11
こういうのを探していたんですー!><
ブクログを利用したいと考えているのですが、3000冊のマンガを登録するのが面倒で面倒で……。
そちらのブログで紹介されていたので早速利用してみたいと思います。
ありがとうございました!

投稿: そうだい | 2011-01-26 22:09
神埼さん
ダウンロードありがとうございます。
そして、レスが遅くて申し訳ございません。

数が多いと大変ですよね。(10冊くらいでも大変ですけど…)
少しでもお役に立てれば幸いです。

投稿: ずぼら | 2011-04-24 20:19
はじめまして。Webカメラをバーコードリーダーにするソフトをいくつか試している中で
こちらのソフトにたどり着きました。

僕はちょっと変わったカメラで使えるリーダーソフトを探していまして…
無線LAN経由でiPhoneをWebカメラにする「iWebCamera」のドライバを利用出来るのはこちらのソフトだけでした。無線カメラで読み込み出来るって果てしなく便利です。
わりかしメジャー?な手段のBCWebCam Free版でもエラーで落ちてしまうのに、このソフトは読み取り・文字列の転送までスムーズに行くのがスバラシイです。

>これでISBN以外のバーコードも読ませられたら快適度500%増しなのですが、EANなどのバーコードを読めるようにする方法ってないでしょうか?

投稿: そうだい | 2011-05-05 00:04
ずぼらさん
使っていただき、ありがとうございます。
そして、レスが遅くて申し訳ございません。

ISBN以外の認識ですが、一応、簡単にできます。(ただし、複数バーコードの場合に認識できません)
http://mhsodai.kazelog.jp/chalog/files/BarCodeReader.zip 12.3 KB (12,652 バイト)

ISBN限定にしている理由は、複数のバーコードを同時に認識した場合の誤認処理が面倒だったからです。
(また、本の裏には2種類のバーコードがあり、ISBNのみ欲しかったという理由もあります)

以前、別の投稿( http://mhsodai.kazelog.jp/chalog/2008/11/post-829b.html#comment-36472949 )にも要望を頂いておりますので、時間があるときに対応してみようかと思います。

投稿: ずぼら | 2011-05-13 17:07
う、うわあああああ!認識バッチリです、素晴らしい!
これはヤバいです。僕の理想のバーコードリーダーがたったいま完成しました。
本当にありがとうございます!
ご紹介いただいたコードも読ませて頂きますね。うわあ、これは本当に嬉しい!

投稿: そうだい | 2011-05-30 23:30
ずぼらさん

ダウンロードありがとうございました。
お役に立てたようで良かったです。

投稿: りょりょん | 2011-10-20 16:11
探し求めていたものがここにありました。是非使ってみたいのですが、カメラの画質はどれぐらいあれば十分に読めるのでしょうか。うちの安物カメラでは読めませんでした。

投稿: そうだい | 2011-10-28 00:45
りょりょんさん

ダウンロードありがとうございます。
返信遅くてすみません。

推奨は30万画素(640×480)です。
この解像度でピントが綺麗に合っていれば、ほぼ読み取れます。

また、10万画素(320×240)のカメラでも、画面いっぱいにバーコードを表示し、綺麗に撮影出来れば、認識は可能です。


以下、バーコードの認識についての詳しい説明です。

一般的に、ISBNのような13桁のバーコード(EANコード)は、113本の白と黒のバーで構成されています。

ISBN_BarCodeReaderでは、ZBarというライブラリでバーコードを認識していて、このライブラリの説明を見るかぎりでは、左右の空白マージンを取り除いた95本のバーで認識が可能みたいです。
http://sourceforge.net/apps/mediawiki/zbar/index.php?title=Troubleshooting#Size.2FResolution

しかし、カメラのピントをとても綺麗に合わせても、一番細いバーを認識するには2~3ピクセル程度は必要になります。
このため、200~300ピクセルの解像度から、バーコードの認識が可能となります。

10万画素(320×240)のWebカメラなら、画面いっぱいになるようバーコードを撮影する必要があります。

30万画素(640×480)のWebカメラなら、画面の1/4以上となるようバーコードを撮影する必要があります。


参考までに、自分が使用しているカメラは UCAM-E1D30MBK です。
http://www2.elecom.co.jp/multimedia/pc-camera/ucam-e1d30m/

2007年2月27日 (火)

D言語からDXライブラリを使う方法(C#用のDxLib.dllを使用)

今日の時点での最新版を使用しています。

D言語コンパイラ(D 1.007)
http://ftp.digitalmars.com/dmd.zip

DXライブラリ(Ver 2.22f)のC#用DxLib.dll
http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip

まずは、Borlandの無償版C++コンパイラの中にあるimpdef.exeを使い、
DLLからモジュール定義ファイル(.DEF)を作成します。

Borland(R) C++Compiler 5.5無償ダウンロード
http://www.borland.co.jp/cppbuilder/freecompiler/

impdef -a DxLib.def DxLib.dll

そうすると、以下のような内容のモジュール定義ファイルが作成されます。

LIBRARY DXLIB.DLL

EXPORTS
dx_Add4VertexBuffer = _dx_Add4VertexBuffer@0
dx_AddKeyAccel = _dx_AddKeyAccel@24
dx_AddKeyAccel_ID = _dx_AddKeyAccel_ID@20
                  :
(以下略)
このモジュール定義ファイルを以下のように修正します。

LIBRARY "DXLIB.DLL"

EXPORTS
_dx_Add4VertexBuffer@0
_dx_AddKeyAccel@24
_dx_AddKeyAccel_ID@20
         :
(以下略)

DXLIB.DLLを""で囲い、EXPORTの下の=より前をすべて削除します。
(正規表現が使えるエディタなら、.+=を置換すれば簡単に消せるはず…)

次に、Digital Marsのimplibというツールを使って、
インポートライブラリファイル(.LIB)を作成します。

http://www.digitalmars.com/
Downloads(Download Digital Mars C compiler)
→I understand and accept the license agreement!
→Basic Utilities
をクリックすると、ZIPファイルがダウンロードできます。
その中にimplib.exeが入っています。

implib /system DxLib.lib DxLib.def

んで、ソースを書きます。
sample.d (DotNetSampleをそのまんまパクリました)

そしてコンパイル
dmd sample.d -L/EXET:NT -L/SU:windows

とりあえず、動いた。わーい。

試してないけど、このDxLib.libを使えばdmcでも動くかもしれない。


コメント

投稿: そうだい | 2010-07-14 00:57
 USBサブモニタ買って繋げたら、何か動きがおかしい。
 んで、久しぶりに新しいDLLをDL&上書きして動かしてみたら、動かない。
 仕方ないので、DLL作り直そうと思ってネット見てたら、ysnr510さんがD言語用のを既に作ってた。
 http://code.google.com/p/dxlib4d/