01/10/2018, 14:57
Convert không gian màu RBG sang HSV. Công thức lỗi chia cho 0
Hello
mình chuyển rbg về hsv theo công thức sau
https://docs.opencv.org/3.1.0/de/d25/imgproc_color_conversions.html
Nhưng như công thức trên thì nếu như r = g = b = 255 (màu trắng) thì gặp lỗi chia cho 0 khi tính giá trị cho h
ví dụ 1 điểm ảnh r = g = b = 255
-> v = 255, min(r,b,g) = 255
mà v = r = 255 -> h = 60*(g-b)/ (v-min(r,b,g)) = 60 * (255-255) / 255 -255 = 0/0
là sao nhỉ
Thank you
Bài liên quan
HSL and HSV | Examples
All parameter values shown below are in the interval [0, 1], except those for H and H2 which are in the interval [0°, 360°].[K]
H, S, V là kiểu số thực, có thể có giá trị là
n/a
(khi R=G=B). Trước khi chuyển về HSV phải đổi RGB từ 0-255 sang 0-1 số thực nữa đâu phải lấy 255lúc chuyển về số nguyên 8 bit thì nó chuyển về H=0, ko sợ đụng với mấy thằng khác vì khi R=G=B thì (H,S,V) có giá trị là (0,0,R), còn với các màu khác max != min thì (H,S) khác (0,0): max != min nên với max != 0 thì S có giá trị khác 0, còn nếu S = 0 thì max = min = 0, trái với giả thuyết ở đây là max != min
có nhiều công thức khác nhau lắm anh, em tìm được mấy công thức, h mà n/a khi s = 0 và gán h = 0 luôn sẽ tránh được lỗi chia cho 0, nhưng em đang không biết khâu hiển thị ntn khi hsv là kiểu thực, % :3