2010-08-22 40 views
7

Tôi cần tính các hộp trong kho bằng cách sử dụng các kỹ thuật phát hiện cạnh; hình ảnh sẽ được lấy từ một mô hình 3D của một nhà kho và hệ thống đề xuất sẽ được sử dụng 3 hình ảnh ở 3 góc độ khác nhau để bao phủ toàn bộ khu vực của một nhà kho.Phát hiện cạnh hình ảnh

Vì tôi không có kinh nghiệm xử lý hình ảnh trước khi tôi hơi bối rối về thuật toán nào nên sử dụng.

+1

Hãy thử http://stackoverflow.com/questions/1391212/best-articles-to-start-learning-about-edge -detection-image-recognition – PaulG

+3

Đó là một vấn đề rất phức tạp để giải quyết! Tôi nghi ngờ bạn sẽ nhận được một câu trả lời toàn diện về SO, đặt cược tốt nhất của bạn có lẽ sẽ tìm kiếm google trên một số tài liệu nghiên cứu. –

+4

Xin lỗi vì sự thẳng thừng: Điều này nghe có vẻ như "Tôi không có kinh nghiệm thí điểm, bạn có thể cho tôi biết làm thế nào để bay một chiếc 747 từ London đến Tokyo". Đọc một vài cuốn sách về xử lý hình ảnh và thị giác máy tính, triển khai các thuật toán, thử nghiệm với chúng. Trước khi bạn làm điều đó, tôi không nghĩ rằng bạn có thể giải quyết một vấn đề như thế này. – Niki

Trả lời

10

Đối với một sự khởi đầu nhanh chóng tôi sẽ đề nghị xem xét hai:

Đây là những ứng dụng rộng rãi nhất bộ lọc phát hiện cạnh với kết quả khá tốt.

Nếu bạn đang bắt đầu học thị giác máy tính, bạn cũng nên tìm hiểu về typical operations in image processingconvolution.

OpenCV library là thư viện tuyệt vời thực hiện nhiều thuật toán về thị giác máy tính, bao gồm cả hai toán tử được đề cập ở trên.

+0

Cảm ơn bạn rất nhiều vì bình luận ur, tôi đã chọn canny là alogrithm của tôi, nếu tôi sử dụng OpenCV hoặc Mathlab giảng viên của tôi sẽ không được hạnh phúc nhiều, làm u hv bất kỳ đề nghị để tìm hiểu chi tiết hoặc hướng dẫn thực hiện canny trong C#? – sha123

+0

Có một bài viết CodeProject tốt đẹp về việc triển khai Canny trong C#: http://www.codeproject.com/KB/cs/Canny_Edge_Detection.aspx –

1

Kiểm tra AForge. Nó có đầy đủ C# thực hiện một số thuật toán phát hiện cạnh.

+0

k Tôi sẽ kiểm tra, thankz rất nhiều 4 bình luận ur – sha123

0

Hãy xem qua câu hỏi Image Processing Library for C++. Bạn có thể tìm thấy một số liên kết hữu ích ở đó. Các thư viện được đề xuất không chỉ có mô tả thuật toán mà còn có các triển khai của chúng.

+0

Cảm ơn bạn đã bình luận ur, nhưng tôi đang sử dụng C# làm ngôn ngữ lập trình của tôi – sha123

+0

Tùy thuộc vào bạn. Nhưng xử lý hình ảnh ở cấp độ này là những thứ khá tốn kém về tài nguyên, các vấn đề hiệu suất. Do đó, sẽ không khôn ngoan để ủy thác nó cho một thời gian chạy được quản lý. OpenCV có một số tối ưu hóa ở mức độ thấp, thậm chí chúng còn đề xuất các bộ xử lý Intel một cách rõ ràng. Nhưng nếu bạn nhấn mạnh vào C# bạn có thể dễ dàng tạo các trình bao bọc được quản lý trên các tệp DLL không được quản lý. –

0

Hãy xem hai số edge detection tutorials của tôi - một là dựa trên convolution, một khác - chỉ đơn giản là toán học. Oh, và bạn phải yêu pixel shaders để đọc :)

liên quan

0

OpenCV có một thuật toán rất đẹp trong đó phát hiện đường nét khép kín trong một hình ảnh và trả họ như danh sách các điểm. Sau đó, bạn có thể vứt bỏ tất cả các đường nét không có 4 điểm, và sau đó kiểm tra một số ràng buộc của các đường viền còn lại (tỷ lệ co của hình chữ nhật, v.v ...) để tìm các cạnh hộp còn lại của bạn. Điều này ít nhất nên giải quyết phần xử lý hình ảnh của vấn đề của bạn, mặc dù việc chuyển danh sách các đường nét này thành một số hộp trong kho của bạn sẽ trở nên khó khăn.

Kiểm tra ở đây cho hàm OpenCV:

http://opencv.willowgarage.com/documentation/structural_analysis_and_shape_descriptors.html#findcontours

http://opencv.willowgarage.com/documentation/drawing_functions.html#drawcontours

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