Chức năng chuyển đổi góc HSV sang góc RYB


7

Tôi đang cố gắng tạo ra một bánh xe màu RYB với độ dốc trông mượt mà trên phổ RYB. Các góc của bánh xe HSV không chính xác (màu vàng ở mức 60deg thay vì 120deg, v.v.).

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

Nếu tôi chỉ thực hiện một vài phép biến đổi tuyến tính thì kết quả vẫn không phù hợp; nhận thức màu đỏ chiếm quá nhiều góc độ và màu vàng không đủ. Ngay cả khi tôi thực hiện một chút hack và thử một gradient đa thức phi tuyến tính, thật khó để có được "lây lan" đúng:

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

Có chức năng "chính thức" nào ánh xạ góc hue HSV thành góc hue không?

Cập nhật: Đọc điều này cho một số ý tưởng, nhưng phần loại trừ màu lục lam làm tôi bối rối hơn vì bánh xe màu RYB của Adobe: Đây có phải là RYB thật hay là CMY với các góc màu được chuyển trong phạm vi màu xanh?

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

Câu trả lời:


6

Tôi mới phát hiện ra rằng nguồn màu Adobe bao gồm các chức năng ánh xạ màu HSV-RYB (được sao chép trong Kuler-d3 của Ben Knight). Rõ ràng Adobe sử dụng các gradient tuyến tính piecewise thay vì đa thức mà tôi đang cố gắng sử dụng (và về mặt kỹ thuật, nó là một bánh xe CMY chứ không phải RBY, tôi tin vậy). Dưới đây là các điểm dừng có liên quan:

RYBstop HSVstop
60      35
122     60
165     120
218     180
275     240
330     300

Dưới đây là biểu đồ của những thứ này cho thấy ánh xạ tri giác:

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

Vì vậy, sẽ có các tạo tác tại các điểm nối mà chức năng ánh xạ không trơn tru (có thể nhìn thấy trong hình ảnh Adobe gốc). Và đây là một kịch bản hình ảnh để tạo bánh xe màu.

#!/bin/bash
#assemble gradient pieces (pre-caculated stops), then join them all
convert -size 600x300 gradient:#000000-#181818 -rotate -90 grad1.png
convert -size 600x310 gradient:#181818-#2A2A2A -rotate -90 grad2.png
convert -size 600x215 gradient:#2A2A2A-#555555 -rotate -90 grad3.png
convert -size 600x265 gradient:#555555-#7F7F7F -rotate -90 grad4.png
convert -size 600x285 gradient:#7F7F7F-#AAAAAA -rotate -90 grad5.png
convert -size 600x275 gradient:#AAAAAA-#D4D4D4 -rotate -90 grad6.png
convert -size 600x150 gradient:#D4D4D4-#FFFFFF -rotate -90 grad7.png
convert grad?.png +append grad.png
#create hue
convert grad.png -alpha set -virtual-pixel Transparent -rotate 180 -distort Arc '360 -90 300' +repage -gravity center -crop 600x600+0+0 +repage h.png
#create saturation
convert -size 600x600 -alpha on radial-gradient:white-none s.png
#create value
convert -size 600x600 -alpha on radial-gradient:none-white v.png
#combine h,s,v in hsv colorspace
convert h.png s.png v.png -combine -set colorspace HSV -colorspace sRGB ryb.png

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

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.