2012-09-11 48 views
5

Tôi về cơ bản đang xử lý mã vạch bằng phần mềm nguồn mở. Nhưng công cụ đôi khi không phát hiện được mã vạch nào cả.Phát hiện hình ảnh trống (hình ảnh được mong đợi là mã vạch) trong C#

Vì vậy, tôi muốn bản thân mình kiểm tra thời tiết hình ảnh thực sự trống hoặc chứa một số loại mã vạch.

Hình ảnh của tôi được tạo thông qua quá trình quét và chúng chỉ chứa mã vạch (nếu chúng không trống) và một số hình ảnh nhiễu do quá trình quét tạo ra. Vì vậy, vấn đề của tôi có thể thậm chí còn xuống để kiểm tra xem hình ảnh có chứa một số lượng đáng kể các pixel đen tập trung để phân biệt nó với các ảnh không gian trắng có nhiễu hay không.

Tôi đã kiểm tra this SO câu hỏi, nhưng đề xuất là sử dụng "biến đổi dòng xác suất Hough" mà tôi đã tìm thấy một chút quá mức cần thiết cho tình huống của tôi.

Tôi cũng đã kiểm tra this nhưng mã không an toàn. Tôi đang tìm một giải pháp C# được quản lý.

Trả lời

0

Mẫu thứ hai mà bạn đã liên kết chỉ sử dụng unsafe mã để tăng tốc độ truy cập vào các giá trị pixel trong bitmap của bạn. Bạn có thể dễ dàng thay thế tất cả bằng cách sử dụng phương pháp của Bitmap thay vào đó (nhược điểm là điều này sẽ rất chậm, nhưng nó có thể vẫn đủ nhanh cho mục đích của bạn).

Tuy nhiên, theo như mã unsafe, không có lý do gì phải lo lắng về việc sử dụng mã đó. Vấn đề duy nhất với thẻ unsafe là một số người dùng (tùy thuộc vào cấp độ quyền của họ) có thể không chạy được mã, mặc dù tôi chưa bao giờ thực sự gặp sự cố tiềm ẩn này.

+1

Có một đường giữa mã số con trỏ 'GetPixel()' và 'unsafe', và đó là lớp' Marshal'. Xem ví dụ câu trả lời này: http://stackoverflow.com/a/1563170/860585 – Rotem

0

Bạn có thể sử dụng thư viện C# OpenSURF này và xem xét giá trị cho vector mô tả tính năng SURF. Tôi không chắc liệu đó có phải là "an toàn" không

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