Làm thế nào để tính toán các màu khác có cùng độ sáng cảm nhận với giá trị xám cho trước?


11

Điều này có liên quan đến một câu hỏi tôi đã hỏi trên tex.stackexchange , có một khía cạnh màu sắc. Kết quả của câu hỏi đó là hình ảnh sau đây:
giá trị và độ tương phản bão hòa

Tôi đã vẽ một loạt các hình vuông màu xám ở bên trái, với một nhánh màu đỏ khởi hành ở bên phải. Mục tiêu là có các ô vuông màu đỏ khác nhau với độ bão hòa khác nhau, nhưng tất cả đều có cùng giá trị màu xám. Trong mô hình màu hsv, tất cả chúng đều giống nhau v, nhưng khi tôi chuyển đổi hình ảnh sang thang độ xám bằng Gimp, chúng không được chuyển đổi sang cùng một màu xám. Ngoài ra ấn tượng thị giác là các hình vuông màu đỏ ở bên phải tối hơn so với bên trái.

Làm thế nào tôi có thể, cho một màu xám nhất định, tính toán màu sắc với một màu sắc nhất định và cùng một giá trị màu xám (hoặc, thậm chí tốt hơn, với cùng một ấn tượng màu xám )? Các màu được sử dụng trong ảnh đều được tính toán, vì vậy tôi thích các giải pháp kết hợp cả tính toán.

Tôi có thể đã sử dụng các thuật ngữ sai ở đây - Tôi là một kỹ sư cơ khí, vì vậy vui lòng sửa cho tôi khi thích hợp hoặc yêu cầu làm rõ.


Đề xuất sử dụng không gian màu Lab đã đưa tôi đến một số kết luận:

  • Tôi có thể sử dụng Lgiá trị của mô hình Lab để đặt một số loại giá trị xám cho các màu khác nhau. Trong mô hình hsv này là v. Tôi không chắc liệu tôi có thực sự được phép so sánh chúng không, nhưng tôi sẽ làm điều đó cho đến khi có ai đó phàn nàn.

  • Trong mô hình hsv, tôi cũng có thể đặt một số "màu cơ bản" (màu sắc) mà tôi không thể tìm thấy trong mô hình Lab.

  • Trong mô hình hsv, tôi có 2 hằng số (trong hình trên: h= 0, v= 0.375) và một biến ( s).

  • Cho đến thời điểm này, tôi chỉ có một hằng số trong mô hình Lab. Điều đó là không đủ để tạo ra một cái gì đó tương tự như những gì tôi đã làm với mô hình hsv.

Tôi đoán đó là thời gian cho các thí nghiệm.


Làm xong! Sau khi tôi nhận được mã chuyển đổi đang chạy, nó thật dễ dàng. Bước đầu tiên là xác định "mục tiêu màu đỏ" ở bên phải. Tôi đã tính toán RGB2Lab (255,0,0) và thay đổi giá trị L của kết quả thành L mong muốn trong hình (L = 62,5). Các màu được tính bằng cách sử dụng phép nội suy tuyến tính trong không gian Lab từ (L, 0,0) đến (L, aTarget, bTarget). Kết quả:

nhập mô tả hình ảnh ở đây

Cảm ơn bạn!


2
Có rất nhiều thứ bạn có thể thấy hữu ích trong mục nhập wikipedia, nhưng tôi đã tìm thấy ( en.wikipedia.org/wiki/HSL_and_HSV#Dis nhược điểm ) có thể liên quan đến vấn đề của bạn, cụ thể: "Bởi vì HSL và HSV hoàn toàn được xác định với tham chiếu đến một số không gian RGB, chúng không phải là không gian màu tuyệt đối: để chỉ định màu chính xác yêu cầu báo cáo không chỉ các giá trị HSL hoặc HSV, mà cả các đặc điểm của không gian RGB mà chúng dựa trên, bao gồm cả hiệu chỉnh gamma đang sử dụng. "
horatio

Vì vậy, ý tưởng rõ ràng là chỉ định không gian màu gamma và RGB (nếu có thể!) Khi thử chuyển đổi.
horatio

2
Ý tưởng tốt hơn nữa là RGB → L * a * b * → RGB; vì Lab được thiết kế để ước tính tầm nhìn của con người và Lightness là một trong những chiều của nó.
Jari Keinänen

@koiyu Lab là cách tôi đề xuất các kết hợp màu xám cũng được tìm thấy. (Bạn đã đánh bại tôi vì điều đó! Tôi đã chế giễu câu trả lời dưới đây khi bạn đăng bài này.)
Nick

Tôi đã tránh các cuộc thảo luận có vấn đề về nhận thức màu sắc :)
horatio

Câu trả lời:


10

Bạn có thể sử dụng không gian màu Lab để tìm trận đấu của mình. Các màu có cùng giá trị L với màu xám mục tiêu của bạn sẽ trông gần giống nhau khi được chuyển thành thang độ xám.

Ví dụ: màu xám Lab của (50, 0, 0), sẽ trông rất giống với màu đỏ của Lab (50, 30, 0), (50, 50, 30) và (50, 50, 50) khi được chuyển đổi thành thang độ xám. Các mẫu bên dưới sử dụng Photoshop (Image> Mode> Grayscale) để chuyển đổi từ Lab sang màu xám: Màu sắc phòng thí nghiệm gốc
Chuyển đổi sang thang độ xám


Trông giống như một cái gì đó tôi muốn! Cảm ơn bạn. Tuy nhiên, tôi không thể sử dụng Lab trực tiếp với bộ công cụ của mình, vì vậy tôi cần một số loại thuật toán chuyển đổi. Koiyu đề nghị chuyển đổi RGB -> Lab -> RGB và tôi sẽ cố gắng thực hiện điều đó.
Christoph

1
Tôi đã tìm thấy như sau: http://www.brucelindbloom.com/index.html?Equations.html . Tôi không biết liệu các chuyển đổi có chính xác không và tôi có cảm tưởng rằng một số phép thuật vẫn được yêu cầu.
Christoph

Các hàm chuyển đổi này trông có vẻ hữu ích.
Nick

Và họ thực sự nhìn thẳng hơn một chút về phía trước ...
Christoph

@Nick Tôi có thể thực hiện tất cả các tính toán với một máy tính, điều này là tốt. Tuy nhiên, tôi phải thực hiện các chuyển đổi mô hình màu trong tài liệu LaTeX của mình, điều này khiến tôi đau đầu ở đây và đó. Khi xong, tôi sẽ đăng kết quả và chấp nhận câu trả lời của bạn.
Christoph

4

Vì vậy, lời khuyên trên của Nick chỉ hoạt động cho 50% Luminance. Nếu bạn áp dụng bất kỳ giá trị L nào khác giống nhau cho các màu khác nhau, kết quả màu xám sẽ khác.

Phải có một phép toán cho điều đó, nhưng bạn có thể thực hiện nó trên màn hình.

Nếu bạn tạo tất cả các màu bạn muốn và sau đó đặt một yếu tố màu xám (họa sĩ minh họa) hoặc lớp (photoshop) với chế độ trong suốt của nó thành "màu" (hoặc bão hòa hoặc màu sắc), điều đó sẽ làm cho tất cả các yếu tố bên dưới để lộ độ sáng của nó.

Bạn nên đảm bảo tất cả các màu bên dưới phần tử màu xám đó có độ bão hòa là 100 hoặc bạn sẽ có kết quả màu xám, thay vì màu đẹp.

Bây giờ, vấn đề là: Với tất cả các phương pháp trên, bạn sẽ biến tất cả các yếu tố thành "độ sáng giống nhau bên trong cấu hình RGB đã sử dụng", tức là cùng màu xám cho "thiết bị" đã chọn và phần tồi tệ nhất: Mắt là một thiết bị , và có sự khác biệt.

Bạn có thể hiển thị cùng màu cho những người khác nhau và họ sẽ không tìm thấy "sự đồng đều" như những người khác.

Thêm vào đó là thực tế là bạn đang đặt các màu đó là "cùng độ sáng" trong thiết bị được chọn và không chỉ tất cả chúng đều được "ước tính", ngay khi bạn hiển thị nó trong một thiết bị khác, hiệu ứng sẽ thất bại, bởi vì mọi thiết bị có khả năng riêng để chiếu sáng các yếu tố màu xanh lá cây hoặc màu xanh lam với các cường độ khác nhau, vì vậy bạn có thể nhận được, ví dụ như các yếu tố màu đỏ.

Ngoài ra, nếu bạn pha trộn từ màu xám sang màu như được đề xuất ở trên, bạn phải đảm bảo phần tử màu xám có tối thiểu 1/255 tối thiểu trong mỗi kênh (tức là không còn màu xám) hoặc phần mềm sẽ xem xét màu xám gốc như 0-hue, sẽ cung cấp cho bạn tông màu đỏ-ish ở giữa (vì sự pha trộn giữa 0 màu và bất kỳ màu nào khác sẽ là một nửa đối với màu đỏ)

Tôi là một chuyên gia báo chí từ những năm 90 và lời khuyên của tôi là: nếu bạn sẽ đi với toán học, bạn nên sử dụng toán học cho mắt (khả năng thị giác) cũng như những gì cho thiết bị bạn sẽ hiển thị những con số trên.

Chúc may mắn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.