Làm cách nào để đọc mã vạch được ghi lại bằng camera điện thoại di động? Ví dụ, làm thế nào để sử dụng iPhone hoặc Android hoặc Java ME? Chúng ta có cần phần cứng riêng để đọc mã vạch hay chúng ta có thể thực hiện thao tác hình ảnh không?Đọc mã vạch bằng hình ảnh được chụp bằng camera điện thoại di động
Trả lời
Google đã thực hiện điều này INCREDIBLY đơn giản với thư viện Zebra Crossing của họ. Họ có hỗ trợ để thực hiện quét qua hình ảnh trên những nền tảng sau:
- J2SE
- Android
và những người khác đã chuyển đến:
- J2ME
- CSharp
- CPP
- Rim
- iPhone
- Bug
Như một poster đã đề cập, trên Android, bạn cũng có thể sử dụng một Intent gọi Barcode Reader với một cái gì đó như:
public Button.OnClickListener mScan = new Button.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "ONE_D_MODE");
startActivityForResult(intent, 0);
}
};
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
Rõ ràng là có thể đọc mã vạch từ hình ảnh của nó. Bạn có thể cần suy nghĩ về các vấn đề như
- Định hướng; có lẽ ảnh không thẳng, vì vậy các thanh không thẳng đứng. Ngoài ra, nó có thể bị lộn ngược ...
- Tập trung; nếu bắn bị mờ thì sao? Có thể là một giới hạn mà nó trở thành không thể giải thích nó một cách an toàn.
- Cắt; điều gì sẽ xảy ra nếu khung hình bị hỏng, vì vậy toàn bộ mã không có trong hình ảnh?
Có rất nhiều dự án và sản phẩm hiện có giải quyết vấn đề này ... Here is one, chẳng hạn. Một số giải pháp dường như không nhạy cảm với các điểm như trên, nhưng yêu cầu có thể tìm và nhận dạng mã vạch bất kể định hướng và vị trí trong hình ảnh chẳng hạn.
Đối với Android, việc này rất dễ dàng. Chỉ cần sử dụng dịch vụ được cung cấp bởi ứng dụng Máy quét mã vạch (phụ thuộc). Sau đó, ứng dụng Máy quét mã vạch sẽ xử lý tất cả phần quét và sẽ chỉ trả lại mã cho bạn.
Tôi nghĩ rằng các giải pháp tương tự có sẵn cho các nền tảng khác, nhưng trong Android nó thậm chí còn dễ dàng hơn vì kiến trúc Intent của nó.
Có thể đọc mã vạch thông qua phân tích được lấy từ máy ảnh điện thoại.
Một biến chứng nổi tiếng là máy ảnh lấy nét cố định (như trên iPhone 2G/3G cũ hơn và một số Android) không thể chụp ở những khoảng cách ngắn trong tiêu cự. Để chống lại điều đó, các thuật toán "giải mã" đặc biệt phải được sử dụng - và lần cuối tôi kiểm tra điều này không phải là một phần của Zebra Crossing.
Một số đã triển khai giải pháp - tôi biết các ứng dụng sau dành cho iPhone có thể đọc UPC với máy ảnh lấy nét cố định: pic2shop (Benoit Maison/Vision Smarts), RedLaser (Occipital) và ShopSavvy (Big in Japan) - kiểm tra chúng ra và tôi nghĩ rằng tất cả chúng đều có sẵn SDK cho các bên thứ 3 quan tâm.
Tôi khuyên bạn nên chọn giải pháp cũng giải mã mã vạch trong hình ảnh bị mờ. Có rất nhiều điện thoại Android cấp thấp chỉ có máy ảnh lấy nét cố định và yêu cầu các giải pháp xử lý ảnh phức tạp hơn so với phương pháp phân tích nhị phân mà các giải pháp phần mềm được liệt kê ở trên cung cấp. Ví dụ về các giải pháp nâng cao hơn bao gồm redlaser hoặc Scandit barcode scanner SDK.
SDK Scandit rất dễ tích hợp và đi kèm với phiên bản cộng đồng miễn phí. Ngoài ra còn có product API giúp dễ dàng chuyển đổi số mã vạch thành tên sản phẩm.
Tuyên bố từ chối trách nhiệm: Tôi là một trong những người đồng sáng lập của Scandit.
Chỉ cần cập nhật cho tất cả những người mới tìm kiếm câu trả lời cho câu hỏi này, Google hiện cung cấp Barcode Detection Apis qua Dịch vụ của Google Play để đơn giản hóa việc quét mã vạch bằng camera của điện thoại. Không cần phải phụ thuộc vào Apis của bên thứ ba nữa.
- 1. Sử dụng PIL để hình ảnh tự động xoay chụp bằng điện thoại di động và accelorometer
- 2. Đọc mã vạch 2D từ hình ảnh
- 3. Lớp phủ hình ảnh có hình ảnh được chụp bằng camera trong android
- 4. Máy quét mã vạch cho điện thoại di động cho Trang web theo mẫu
- 5. Hình động và Điện thoại không hoạt động trên điện thoại di động
- 6. Tải hình ảnh Uri + hình thu nhỏ của ảnh chụp bằng camera trong Android
- 7. iPhone: chụp ảnh bằng camera trước có lập trình
- 8. Windows Mobile: sử dụng camera của điện thoại với C#
- 9. Mã hóa Sử dụng Điện thoại Di động
- 10. Quét mã vạch cửa sổ điện thoại 8
- 11. không hoàn thành hoạt động khi chuyển ảnh của mảng byte được chụp bằng máy ảnh
- 12. cảm biến điện thoại di động
- 13. Hình ảnh nhúng trong email HTML không hiển thị trên điện thoại di động
- 14. Chụp ảnh màn hình trên điện thoại Android khi phát video và xem trước máy ảnh
- 15. Chụp ảnh màn hình của video được nhúng bằng C#
- 16. Tải tệp lên bằng băng thông rộng di động bằng trình duyệt chuẩn (không phải từ điện thoại)
- 17. Đọc mã QR bằng máy ảnh - Android
- 18. Trong javascript 'Nếu điện thoại di động'
- 19. Đọc các tệp chụp ảnh trong PhoneGap
- 20. "background-size: cover" không bao gồm màn hình điện thoại di động
- 21. Chụp ảnh bằng Android bằng cách sử dụng FFmpeg
- 22. java đọc mã vạch
- 23. Chụp ảnh bằng thẻ đầu vào Html5
- 24. cách quét mã vạch bằng cách sử dụng phonegap
- 25. Sự cố với trang web trên điện thoại di động
- 26. Xác thực số điện thoại di động Nam Phi
- 27. Phát hiện MSISDN (số điện thoại di động) bằng trình duyệt
- 28. Phát hiện hình ảnh trống (hình ảnh được mong đợi là mã vạch) trong C#
- 29. Cách đúng để sử dụng điện thoại di động và điện thoại di động với nhiều trang html
- 30. Làm thế nào tôi có thể tìm ra thư mục hình ảnh camera của điện thoại Android?
vấn đề với ZXing - lần cuối cùng tôi kiểm tra - là nó không hoạt động với cam lấy nét cố định, hầu hết các điện thoại di động (giá rẻ || iPhone 2G) có –