2012-11-24 62 views
10

Trong mô hình RGB, mỗi pixel được xác định bằng 3 byte, tương ứng với R, G và B. Điều này cung cấp tổng cộng 2 màu sắc, bao gồm 256 tông màu xám.Trong mô hình RGB có bao nhiêu sắc riêng biệt?

Nó rất phổ biến để đại diện cho các mô hình HSV/HSB/HSL với float s (không phải byte s). Hầu hết các mô tả mô tả màu sắc như là "góc" trong một hình nón, do đó, nó hợp lý để coi nó như một số thực.

Nhưng làm thế nào điều này liên quan đến giới hạn tối đa 2 tổng số màu ..? Có bao nhiêu màu sắc riêng biệt? Hơn nữa, có vẻ như với tôi rằng số nên phụ thuộc vào các thông số khác - ví dụ bão hòa ..


Thú đọc: http://www.dig.cs.gc.cuny.edu/manuals/Gimp2/Grokking-the-GIMP-v1.0/node52.html

+2

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

+0

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? –

+0

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

Trả lời

8

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.

+0

Tôi không nghĩ rằng 'sqrt (3) (x)' là một ký hiệu hợp lý. Nếu bạn có nghĩa là gốc khối lập phương, hãy viết 'root (3) (x)' hoặc 'x 1/3'. – PointedEars

+0

@PointedEars căn bậc hai của ba nhân với x. Bây giờ có tốt hơn không? –

0

TRÊN màu RGB của màu sắc có thể được tính từ (2^3 * sâu-2^sâu/Luminance)/3 = nên 15 bit màu có 341 màu sắc khác nhau

24bit màu có 21.845 Hues biệt

nếu có 119000 màu, các màu remaing Tất cả màu sắc - Màu đỏ của màu đỏ sẽ là 256, X, Y khoảng 2^16 có nghĩa là có ít màu xanh lá cây và xanh dương hơn màu đỏ?

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