2015-06-02 30 views
9

Bộ lọc Scharr được giải thích trong Scharrs dissertation. Tuy nhiên các giá trị được đưa ra trên trang 155 (167 trong pdf) là [47 162 47]/256. Nhân này với nguồn gốc lọc sẽ mang lại:Giải thích cho các giá trị trong Scharr-Bộ lọc được sử dụng trong OpenCV (và các địa điểm khác)

enter image description here

Tuy nhiên, tất cả các tài liệu tham khảo khác tôi thấy sử dụng

enter image description here

Đó là gần giống như những người do SCHARR, thu nhỏ lại bởi một hệ số 32.

Bây giờ tôi đoán là phạm vi có thể được biểu diễn tốt hơn, nhưng tôi tò mò nếu có một lời giải thích chính thức ở đâu đó.

Trả lời

4

Để có được quả bóng lăn về câu hỏi này trong trường hợp không có "chuyên gia" có thể được tìm thấy ...

Tôi tin rằng các giá trị [3, 10, 3] ... thay vì [47 162 47]/256 ... được sử dụng đơn giản cho tốc độ. Nhớ lại rằng phương pháp này đang cạnh tranh với Sobel Operator có giá trị hệ số là 0, và số dương/âm 1 và 2.

Mặc dù số chia trong phân chia, 256 hoặc 512, là lũy thừa của 2 và có thể được thực hiện bằng ca, thực hiện và nhân với 47 hoặc 162 sẽ mất nhiều thời gian hơn. Tuy nhiên, một phép nhân của 3 có thể được thực hiện trên một số kiến ​​trúc RISC như loạt IBM POWER trong một hoạt động thay đổi-và-thêm. Đó là 3x = (x << 1) + x. (Trên các kiến ​​trúc này, bộ dịch chuyển và bộ cộng là các đơn vị riêng biệt và có thể được thực hiện độc lập).

Tôi không thấy ngạc nhiên khi giấy Phd sử dụng công thức phức tạp và có lẽ chính xác hơn; nó cần thiết để chứng minh hoặc chứng minh điều gì đó, và tác giả có thể không hoàn toàn chắc chắn hoặc lo ngại rằng nó được sử dụng và thực hiện cùng với các phương pháp khác. Mục đích của luận án có lẽ là có "đối xứng quay hoàn hảo". Sau đó khi một người quyết định thực hiện nó, người đó tôi nghi ngờ đã sử dụng công thức xấp xỉ và từ bỏ một chút về sự đối xứng quay hoàn hảo, để đạt được tốc độ. Mục tiêu của người đó như tôi đã nói là có một cái gì đó cạnh tranh với chi phí của chút chút tốc độ cho công cụ quay này.

Vì tôi đoán bạn sẵn sàng làm việc này vì đó là luận án của bạn, đề xuất của tôi là triển khai thuật toán gốc và đánh giá nó chống lại cả mã OpenCV Scharr và Sobel.

Điều khác để cố gắng nhận được câu trả lời "chính thức" là: "Sử dụng" nguồn ", Luke!". Mã số on github để kiểm tra và xem ai đã thêm bộ lọc Scharr vào đó và liên hệ với người đó. Tôi sẽ không đặt tên của người đó ở đây, nhưng tôi sẽ nói rằng mã đã được thêm vào 2010-05-11.

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