2008-08-18 23 views

Trả lời

18

Tôi đã tìm thấy một giải pháp khả thi trong số Color FAQ. Thành phần độ sáng Y (từ hệ thống CIE XYZ) ghi lại những gì được con người nhận thức nhiều nhất dưới dạng màu trong một kênh. Vì vậy, sử dụng những hệ số:

mono = (0.2125 * color.r) + (0.7154 * color.g) + (0.0721 * color.b); 
6

This MSDN article sử dụng (0.299 * color.R + 0.587 * color.G + 0.114 * color.B);

This Wikipedia article sử dụng (0.3* color.R + 0.59 * color.G + 0.11 * color.B);

+1

Tôi nghĩ rằng đây là cả hai sai cho ứng dụng này khi chúng áp dụng cho các giá trị RGB được sửa chữa gamma. –

+1

Đây thực sự là giống nhau – user877329

5

Điều này phụ thuộc vào những gì động cơ của bạn. Nếu bạn chỉ muốn biến một hình ảnh tùy ý thành màu xám và trông nó khá tốt, các chuyển đổi trong các câu trả lời khác cho câu hỏi này sẽ làm.

Nếu bạn đang chuyển đổi ảnh màu thành màu đen và trắng, quá trình này có thể vừa phức tạp vừa mang tính chủ quan, đòi hỏi phải tinh chỉnh cụ thể cho từng hình ảnh. Để biết ý tưởng của bạn, hãy xem tutorial từ Adobe for Photoshop.

Việc sao chép mã này sẽ khá tham gia và sẽ vẫn yêu cầu người dùng can thiệp để có được hình ảnh kết quả về mặt thẩm mỹ "hoàn hảo" (bất kỳ điều gì có nghĩa!).

5

Điều này recent scientific article so sánh nhà nước-of-the-nghệ thuật trong việc chuyển đổi hình ảnh màu sắc sang màu xám, bao gồm công thức độ sáng đơn giản và các kỹ thuật phức tạp hơn.

3

Như đã đề cập, bản dịch xám đen (lưu ý rằng hình ảnh đơn sắc không cần phải có màu xám) từ một bộ ba RGB sẽ tùy thuộc vào khẩu vị. Ví dụ, bạn có thể ăn gian, chỉ trích xuất thành phần màu xanh, đơn giản bằng cách ném các thành phần màu đỏ và màu xanh lá cây, và sao chép giá trị màu xanh lam thay cho chúng. Một giải pháp đơn giản và thông thường khác là lấy trung bình của bộ ba RGB của pixel và sử dụng giá trị đó trong cả ba thành phần.

Thực tế là có một thị trường đáng kể cho các trình chuyển đổi đơn sắc và không có giá rẻ cho Photoshop một mình, cho rằng việc chuyển đổi đơn giản hoặc phức tạp như bạn muốn.