انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: خواندن Barcode با WebCam  (دفعات بازدید: 2641 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
خواندن Barcode با WebCam
« : 02 آذر 1394، 05:53 ب‌ظ »
سلام دوستان

شاید براتون پیش اومده باشه که نیاز باشه تا مثلا بیش از ۳ تا قبض را پرداخت کنید.
یکی از سختی های این کار وارد کردن شناسه ها است.

البته برنامه های برای Mobile وجود داره که می تونند این کارو انجام بدن.
اما بعضی مواقعه هست که ممکنه Camera موجود در Mobile کیفیت خوبی نداشته باشه. یا اصلا Camera نداشته باشه.

حتی ممکنه شما بخواید در جایی مثل شرکت از BarCode استفاده کنید، اما به هر دلیلی دستگاه BarCode خوان خراب شده.

و.....


با استفاده از ZBar میتونید این کارو انجام بدید. البته اضافه کنم که نیاز به برنامه نویسی دارید تا خروجی ‌BarCode را به برنامه مورد نظر ارسال کنید.

برای نصب در Ubuntu از دستور زیر استفاده کنید:

sudo apt-get install zbar-tools
بعد از نصب ۲ گزینه به خط فرمان اضافه میشه:
۱- zbarcam
۲- zbarimg

از اسمشون معلومه که برای چی هستند.

در اینجا من zbarcam را توضیح میدم.

وقتی zbarcam را اجرا کنید پنجره براتون باز میشه که خروجی WebCam است.

نکته: اگر چند WebCam دارید، به صورت زیر اجرا کنید:
zbarcam /dev/video*
بجای * شماره WebCam را وارد کنید.

حالا BarCode مورد نظر را جلوی WebCam بگیرید و به خط فرمان نگاه کنید، اگر زیاد تکون ندید باید بهتون BarCode نمایش بده.

حالا شما می تونید با استفاده از یک مقدار برنامه نویسی تنظیم کنید که BarCode به برنامه مورد نظر ارسال شود.

برای نمونه یک Script ساده نوشتم که می تواند اطلاعات قبوض آب، برق، گاز، تلفن ثابت، تلفن همراه و شهرداری را نمایش دهد.

پیش نیاز ها: zbar-tools و zenity
#!/bin/bash

tmp=/tmp/barcode
zbarcam > $tmp &
pid=$!

while [[ ! -s $tmp ]] ; do
    sleep 1
done

kill $pid

barcode=$(cat $tmp)
rm $tmp

barcode=${barcode:9}

bill_type=${barcode:11:1}
bill_id="$(echo ${barcode:0:13} | sed 's/^0*//')"
pay_id="$(echo ${barcode:13:13} | sed 's/^0*//')"
amount="$(echo ${barcode:13:8} | sed 's/^0*//')000"

echo "Barcode: $barcode"
echo "Bill Type: $bill_type"
echo "Bill ID: $bill_id"
echo "Pay ID: $pay_id"
echo "Amount: $amount"

case "$bill_type" in

1)
    bill_type="آب"
    ;;
2)
    bill_type="برق"
    ;;
3)
    bill_type="گاز"
    ;;
4)
    bill_type="تلفن ثابت"
    ;;
5)
    bill_type="تلفن همراه"
    ;;
6)
    bill_type="شهرداری"
    ;;
*)
    bill_type="قبض نامعتبر"
    ;;
esac

zenity --info --title="مشحصات قبض $bill_type" --text="شناسه قبض: $bill_id\n\nشناسه پرداخت: $pay_id\n\nمبلغ قابل پرداخت: $amount ریال"
« آخرین ویرایش: 02 آذر 1394، 05:57 ب‌ظ توسط { AliReaza } »

آفلاین hamidrezakp

  • Sr. Member
  • *
  • ارسال: 432
  • جنسیت : پسر
  • Life is Good With GNU/Linux
    • Hamidrezakp Web Site
پاسخ : خواندن Barcode با WebCam
« پاسخ #1 : 02 آذر 1394، 07:14 ب‌ظ »
عالی  :D
HamidRezaKP.ir
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.