Trong HSV, sắc được định nghĩa là
H = atan2(sqrt(3)*(G-B), 2R-G-B)
(link). Trong mỗi một trong sáu lĩnh vực (R-Y, Y-G ...), có nhiều màu sắc như nhau. Ngoài ra, có sáu màu sắc ở ranh giới giữa các khu vực. Vì vậy, 6 + 6 * huesRY
.
Trong khu vực màu đỏ-vàng, R> G> B, vì vậy cả hai đối số cho atan2 đều dương.
count sqrt(3) * (G-B)/(2R-G-B)
=count (G-B)/(2R-G-B)
=count (G-B)/((G-B) + (2R-2G))
kể từ khi chúng ta có thể áp dụng bất kỳ biến đổi tuyến tính với bộ [x, y] và không thay đổi số lượng các tỷ lệ của nó, x/(x+2y) == x/y
=count (G-B)/(R-G)
nếu chúng ta trừ đi giá trị tương tự từ tất cả các R, G, B, tỷ lệ không thay đổi, vì vậy giả định B = 0
=count G/(R-G)
=count G/R
như vậy, có sáu lần so với nhiều màu sắc như có tỷ lệ giữa hai số nguyên dương mà cả hai đều dưới 2^8 (giả sử 8 bit mỗi ch annel), và sáu nữa. Có nhiều tỷ số như có cặp số nguyên dương trùng nhau. Số lượng số nguyên dương bên dưới n
là nguyên tố trùng với n
được gọi là hàm tổng cộng của Euler. OEISlistsitspartial sums. Có chính xác 19.948 cặp nguyên tố cùng nhau nguyên dương dưới 256.
6 * 19948 + 6 = 119 694
có chính xác 119 694 màu sắc khác nhau trong mô hình HSV tương ứng với một màu trong 8-bit Mô hình RGB. Lưu ý rằng chúng không cách nhau đều nhau.
Nếu 8 bit trên mỗi kênh được sử dụng trong mô hình HSV, thì có ít màu hơn trong mô hình RGB với 8 bit cho mỗi kênh đơn giản vì một số bản đồ HSV gấp ba lần cùng một màu trong khi mỗi RGB ba xác định một màu khác nhau.
Mô hình HSV/HSB có ít màu hơn RGB cho cùng một lượng không gian được sử dụng để biểu thị màu, vì có các giá trị ánh xạ tới cùng một màu. – nhahtdh
Tôi tin rằng có khoảng 60k sắc thái khác nhau trong RGB. Bạn có cần giá trị chính xác không? –
Có, có lẽ có một công thức để tính toán điều này? Tôi đánh giá cao mọi câu trả lời với cái nhìn sâu sắc hơn về chủ đề: các màu chồng lên nhau, hiệu quả bit vv Hơn nữa - 256 _tones_ của màu xám có thể được phân tách bằng mắt thường (trên màn hình LCD tiêu chuẩn). Có thể phân biệt màu 60k? – emesx