2011-09-11 36 views
6

Tôi đã cố gắng để có được một hình dung đi trong một vài ngày. Tôi đang tạo ra một hình ảnh nhiễu xạ và muốn tô màu nó tùy thuộc vào bước sóng ánh sáng.
Cách dễ nhất để lấy màu phù hợp là sử dụng không gian HSV với H thay đổi theo bước sóng và S, V được đặt thành 1.0
Than ôi, tôi không thể tìm được công thức/thuật toán/cách kết hợp các màu khác nhau Không gian HSV.thêm/trộn màu sắc trong không gian HSV

Có công thức pha trộn HSV hoặc cách khác có thể hiểu được không?

+0

Bạn có thể tìm thấy câu hỏi trước thông tin này: http://stackoverflow.com/questions/6130621/algorithm-for-finding-the-color-between-two-others-in-the-colorspace-of-painted –

Trả lời

6

Thành thật mà nói, tôi muốn chuyển đổi RGB, trung bình các thành phần và chuyển đổi về HSV.

Đây không phải là cách hiệu quả nhất, nhưng bạn có thể có hoặc cần RGB < -> mã HSV và phép tính RGB có thể đơn giản hơn nhiều.

+0

I đã thực hiện như bạn đã đề xuất và nó hoạt động. – Nox

+0

Nó giống như 1. cho mỗi bước sóng: tính toán cường độ cho mỗi điểm ảnh. Bình thường hóa, thêm vào ** double ** Array (ảnh). 2. Trước khi viết: Bình thường hóa hình ảnh Mảng, chia tỷ lệ 255,0, đúc thành ** int ** 3. Cuối cùng lưu vào File (PPM thô hoặc PNG nhiều hơn một chút) Điều duy nhất còn lại sẽ là kiểm tra một số cách những hình ảnh là thể chất chính xác. – Nox

+1

Tôi hoàn toàn không hiểu, mặc dù nó có vẻ thú vị. Nếu bạn đang chuẩn hóa màu RGB, bạn sẽ chiếu chúng lên một số vùng màu không gian cong. Tbh để tiết kiệm, những ngày này tôi chỉ cần viết byte thô và sử dụng ImageMagick trên dòng lệnh để biến nó thành một PNG. – andrewmu

5

Một trong các tài liệu tham khảo tiêu chuẩn Computer Graphics: Principles and Practice bởi Foley et al. có điều này để nói trong phần 13.3.7 "Nội suy trong không gian màu":

"Khi hai hình ảnh được pha trộn [...] màu sắc có thể khá xa và mô hình phụ, chẳng hạn như RGB, là Mặt khác, nếu mục tiêu là nội suy giữa hai màu cố định (hoặc bão hòa) và để duy trì màu sắc cố định (hoặc bão hòa) cho tất cả các màu được nội suy, thì HSV hoặc HLS là thích hợp hơn. -saturation suy trong HSV hoặc HSL là không xem như đã bão hòa cố định bởi người xem [...]"

vì vậy, họ đồng ý với đề nghị của @andrewmu, mà có vẻ như t ông đề nghị tốt nhất nói chung.

+0

Nếu bạn muốn kết hợp nhiều hơn hai màu trong không gian HSV (độ sáng và độ bão hòa được đặt thành 1)? Bạn có thể thêm các vector màu trên bánh xe màu không? Nếu bạn thêm tất cả các màu cầu vồng theo cách này (tất cả các cách xung quanh bánh xe), bạn sẽ nhận được một màu trắng, phải không? – pkout

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