主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

Webカメラを使ったバーコードスキャン on python

                
tags: python zbar
scanning.jpg

先日せっかくpythonzbarを入れたので、pythonでWebカメラを使ったバーコードスキャンをやってみる。OpenCVとzbarを使う。

OpenCVがなければ……というより、Windows環境では下記がWebカメラからのキャプチャをするのにおすすめ。OpenCVは大きいから、Webカメラを使いたいだけなら不要なものが多い。
http://videocapture.sourceforge.net/

とっても簡単。まずOpenCVサンプルのfacedetect.pyの必要な部分以外削る。必要な部分とはWebカメラの使用準備とフレームキャプチャ。それでfacedetectの関数部分をバーコード検出に書き換えるだけ。

http://sourceforge.net/apps/mediawiki/zbar/index.php?title=HOWTO:_Scan_images_using_the_API#Python
次に↑に載っている画像ファイルからバーコード検出するスクリプトを参考に、
Webカメラからキャプチャした画像を解析するように適応させる。


#!/usr/bin/env python

import cv
import zbar
import Image
import time

def scanbar(img):
t=time.time()

#convert to grayscale
gray =cv.CreateImage( cv.GetSize(img),cv.IPL_DEPTH_8U,1)
cv.CvtColor(img, gray, cv.CV_BGR2GRAY)

# create a reader
scanner = zbar.ImageScanner()

# configure the reader
scanner.parse_config('enable')

# obtain image data
##pil = Image.open('barcode.png').convert('L')
width, height = gray.width, gray.height
raw = gray.tostring()

# wrap image data
image = zbar.Image(width, height, 'Y800', raw)

# scan the image for barcodes
scanner.scan(image)

# extract results
for symbol in image:
# do something useful with results
print 'decoded', symbol.type, 'symbol', '"%s"' % symbol.data

cv.ShowImage("result", img)
print "%f" % (time.time()-t)

if __name__ == '__main__':
capture = cv.CreateCameraCapture(int(0))

cv.NamedWindow( "result", 1 )
frame=''

if capture:
while True:
frame = cv.QueryFrame(capture)
scanbar(frame)

if cv.WaitKey( 10 ) >= 0:
break


↓にC,C++,python,perlでの使い方が載っています。
HOWTO: Scan images using the API


続きを読む

スポンサーサイト



pythonでバーコードリーダーの導入(import zbar on python2.6)

                
tags: python zbar
zbar
Webカメラや画像ファイルから画像を取得、その画像からバーコードを検出し、そのコードを取得したいときにzbarというライブラリが使える。pythonにもインストーラが用意されているので、windowsでその導入までを。

まず↑でzbarのwindowsインストーラーを落としてきてインストール。

Python zbar
続いて↑からpythonのためのモジュールインストーラーを落としてきてインストール。

この状態でインタープリタに"import zbar"と打っても実行できない。
C:\Program Files\ZBar\binにパスを通せばzbarを使えるようになる。


'10/11/14
Webカメラの導入→Webカメラを使ったバーコードスキャン on python

所有物管理アプリ(蔵書管理、CD管理など) for Windows

                
これはWindowsOSでローカルにデータを保存するアプリケーション。他のOSやWebで使いたければこちらへ↓
BCDChest



****************************************************************************************
本とCDがとても多く半分ぐらいは段ボールに入っているので、新しいのを買うときに持っていないか確認するのがやたら手間だった。というわけでその確認を簡単にするためのアプリを作った。

所有物管理にはアプリやWebサービスで、既存のものがいくつかある。僕が作るにあたって達成したかったのはシンプルさ。ローカルにデータを保存するのでビューワーでのページ遷移が軽快。


できること
1.Webカメラでバーコードスキャンして所持品リストに登録


2.Amazonのほしいものリストをインポートして所持品リストに登録

3.Amazonほしいものリストをウィッシュリストとして登録

4.所持品リストとウィッシュリストの閲覧
110605.jpg




collect1.jpg

collect2.jpg


説明書

アプリダウンロード→都合により公開停止中

windows実行形式です。通信はバーコード情報をamazonに送りそのレスポンスを得るとき、Amazonからウィッシュリストデータを引っ張ってくるときのみ。



バーコードを連続で100個読み取った。




テスト環境:
Windows 7 Ultimate(64bit), HP Pavilion dv6 Notebook PC, Intel i3, 4GB RAM
camera: Notebook本体内蔵カメラ, Logicool C300

XP Mode, HP Pavilion dv6 Notebook PC, Intel i3
camera: Notebook本体内蔵カメラ

Windows XP, HP Compaq Desktop dx2100, Intel Celeron, 2GB RAM
camera: BUFFALO BWC35H01BKA

スクリプト
Google Docs

続きを読む

プロフィール

h

Author:h

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon