Mã 39 , được phát triển vào năm 1974, là một trong những ký hiệu hay loại mã vạch được sử dụng phổ biến nhất, mặc dù đó là hệ thống UPC / EAN thường thấy nhất trong bán lẻ. Mã 39 mã vạch có thể mã hóa chữ hoa, số và một số ký hiệu và không đáng kể để in từ phần mềm máy tính bằng phông chữ đặc biệt. Điều này dẫn đến việc sử dụng rộng rãi trong thương mại và công nghiệp (ví dụ: phù hiệu ID công ty, theo dõi tài sản, tự động hóa nhà máy).
Tạo chương trình hoặc chức năng ngắn nhất để đọc mã vạch Code 39 theo bất kỳ hướng nào từ hình ảnh thang độ xám 512x512 pixel; mã vạch có thể không được căn chỉnh theo chiều ngang hoặc chiều dọc.
- Chương trình của bạn phải chấp nhận định dạng tệp hình ảnh tiêu chuẩn và tạo dữ liệu được mã hóa trong mã vạch dưới dạng giá trị đầu ra hoặc trả về tiêu chuẩn của nó (không bao gồm bất kỳ ký tự bắt đầu / dừng).
- Không có hình ảnh nào chứa nhiều mã vạch Mã 39 hợp lệ và không có mã vạch nào mã hóa ký tự khoảng trắng (ASCII 32).
- Nếu không có mã vạch Mã 39 hợp lệ được hiển thị trong hình ảnh, chương trình phải xuất một dấu hỏi duy nhất (
?
).
Tôi đã chuẩn bị một bộ triển khai tham chiếu JavaScript và bộ thử nghiệm hình ảnh ở định dạng PNG, cả mã vạch hợp lệ và không có. Việc triển khai tham chiếu, chỉ thất bại 3 trong 46 trường hợp thử nghiệm trong hầu hết các trình duyệt Web gần đây, nhằm hiển thị một thuật toán giải mã có thể, không tuân thủ nghiêm ngặt các đặc điểm kỹ thuật trên.
Một lần gửi hợp lệ vượt qua ít nhất 80% các thử nghiệm này (37/46) và mất không quá một phút để thực hiện điều đó cho mỗi hình ảnh trên CPU có tốc độ khá cao (ví dụ như lõi tứ 2,6 GHz). Việc triển khai tham chiếu của tôi vượt qua 93% các thử nghiệm và xử lý mỗi hình ảnh trong vòng 10 giây (trên máy tính để bàn của tôi chạy Google Chrome).
(Câu hỏi này đã được đề xuất trên Meta vào ngày 28 tháng 5 năm 2011).