2012-04-09 39 views
5

Tôi đang tìm thư viện C++ để đọc mã ma trận dữ liệu, cụ thể là mã ECC 200 (vì vậy không phải mã QR). Tôi đã tìm thấy libdmtxzxing. zxing là java, nhưng có vẻ như là một cổng C++. Có ai có kinh nghiệm đọc mã ECC 200 với các thư viện này hoặc có thể với các thư viện khác không?Thư viện C++ để đọc mã ma trận dữ liệu

Trả lời

1

Hỗ trợ DM trong cổng C++ của ZXing được cập nhật với Java (không đúng với nhiều mã 1D). Nó không được kích hoạt mặc định trong các ứng dụng thử nghiệm nhưng rất dễ bật (và will be enabled by default in the future.)

Tôi không có kinh nghiệm cá nhân thực sự sử dụng bộ giải mã DM nhưng nó được bao gồm trong các bộ thử và tôi tin rằng có sẵn trong Ứng dụng Android.

0

Tôi hiện đang cố gắng sử dụng libdmtx http://www.libdmtx.org/

Nó có hỗ trợ cho tất cả các loại giao diện. Nó có vẻ có đánh giá tốt ở đây và ở những nơi khác….

(Nhưng tôi đang tìm kiếm sự giúp đỡ vào việc xây dựng các tiện ích :-)

0

Vì không có "thực" câu trả lời đã được đăng câu hỏi của tôi, ít nhất là không có câu trả lời từ người có kinh nghiệm với một trong những thư viện để đọc 2D ma trận mã, tôi nghĩ rằng tôi sẽ đăng kinh nghiệm của riêng tôi.

Tôi đã thử cả hai thư viện và cả hai đều có thể đọc mã, nhưng hiệu suất không đủ tốt cho các tình huống của tôi. Trong tình huống của tôi, các mã thường không "hoàn hảo", Dots có thể bị thiếu, có kích thước khác nhau và mã có thể hơi lệch. Cả hai thư viện đều gặp sự cố khi đọc các mã này.

Cuối cùng, tôi đã sử dụng thư viện thương mại (không miễn phí), Sapera. Sapera đã có thể đọc các mã không hoàn hảo tốt hơn nhiều. Tôi đã sử dụng Sapera bởi vì nó đã được sử dụng tại công ty của tôi trong quá khứ, nhưng nó hoàn toàn có thể là các thư viện máy tính thương mại khác (như Halcon) cũng hoạt động tốt.

1

Đây là câu trả lời thực sự. Tôi đã sử dụng cả libdmtx và libzxing thành công. Libdmtx là đơn giản hơn, bởi vì nó được giới hạn trong datamatrices. Theo kinh nghiệm của tôi, kết quả là, đủ kỳ lạ, không phải luôn luôn xác định. Libzxing cũng tốt, nhưng khi bạn thực sự sản xuất (hàng triệu hoặc readouts) nó sẽ sụp đổ đôi khi do thực tế là quản lý bộ nhớ không hoàn hảo. Nó thực sự tốt, nhưng không hoàn hảo cho một môi trường sản xuất thực sự.

Cả hai thư viện, libzxing và libdmtx đều yêu cầu bạn phải có deadcenter datamatrix của hình ảnh và khá lớn. Điều đó có nghĩa là bạn cần tự mình làm bản địa hóa trước. Tôi quản lý để làm điều này bằng cách chỉ sử dụng hình ảnh thói quen và tìm kiếm hình dạng 'L' và sau đó một số thông minh với một khu vực tối thiểu bình phương bounding hộp, vv vv Sau đó, giải mã và lỗi correciton bước tôi được sử dụng từ libzxing, mà vẫn isnt hoàn hảo.

Nếu bạn đi đến môi trường sản xuất, hãy tự làm mọi thứ, và nếu bạn không cảm thấy thoải mái khi làm điều đó, hãy sử dụng gói trả phí, không bao giờ hoàn toàn phù hợp với đơn đăng ký của bạn và chi phí.

Cổng tốt nhất của libzxing-cpp là của người dùng glassenchidna. https://github.com/glassechidna/zxing-cpp

Các vấn đề liên quan