2013-05-22 49 views
14

Ai có thể giải thích cho tôi lý do tại sao giá trị màu sắc của hình ảnh HSV trong OpenCV chỉ đi tới 180 ° và không phải là 360 ° đầy đủ?Tại sao dải màu 0-180 ° trong opencv

Tôi đã tìm thấy một nơi nào đó rằng OpenCV sử dụng một hình trụ 180 °, nhưng tôi không thể hình dung một hình trụ như vậy.

Cảm ơn trước!
J

Trả lời

6

Trong cv::cvtColordocumentation cho RGB<->HSV chuyển đổi nó được tuyên bố rõ ràng rằng H nằm trong phạm vi [0; 360]. Nếu bạn gặp phải hành vi khác, bạn nên report a bug.

+11

Tôi đã bỏ lỡ phần tài liệu đó, cảm ơn. Hình ảnh của tôi là hình ảnh 8 bit, theo tài liệu 'Đối với hình ảnh 8 bit: H <- H/2 (để khớp từ 0 đến 255)'. – JasperV

21

cố gắng để đưa 360 vào một uchar;)

như vậy, nó chỉ chia cho 2 để làm cho nó phù hợp với ..

+0

Bạn không muốn đọc thêm hai đoạn văn của tài liệu, phải không? :) – Mikhail

+2

hmm? Ý anh là gì ? có lẽ nó nên được thêm vào, rằng nó chỉ chia cho 2 trong trường hợp 8bit? – berak

+0

Tôi không thể hiện suy nghĩ của mình một cách chính xác. Tôi có nghĩa là bạn đã kiểm tra các tài liệu tương tự như tôi đã làm, nhưng đọc hai đoạn văn nhiều hơn và phát hiện ra điều thực sự giải thích vấn đề. Quan điểm của tôi là câu hỏi ban đầu là một chút newbie và nó chỉ mất một vài giây để gửi một câu trả lời. – Mikhail

6

Các dao động mà OpenCV quản lý cho định dạng HSV như sau:

Đối với HSV, phạm vi Huế là [0179], phạm vi Saturation là [0255] và Dải giá trị là [0255]. Các phần mềm khác nhau sử dụng các thang đo khác nhau. Vì vậy, nếu bạn đang so sánh các giá trị OpenCV với chúng, bạn cần phải chuẩn hóa các phạm vi này.

Đây là liên kết đến tài liệu OpenCV giải thích nó.

http://docs.opencv.org/3.2.0/df/d9d/tutorial_py_colorspaces.html

+0

Liên kết không hoạt động. –

+0

Liên kết được cập nhật thành http://docs.opencv.org/3.2.0/df/d9d/tutorial_py_colorspaces.html – igaurav

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