2012-12-30 68 views
5

Tôi đang làm việc trên thư viện chia sẻ hình nền không gian. Tôi đã sử dụng thư viện màu sắc của thư viện JavaScript để truy xuất các màu chi phối của hình ảnh nhưng tôi gặp sự cố. Hầu hết các hình nền đều tối. Nếu khi tìm kiếm hình nền, người dùng chọn nói màu xanh lam như # 07F, anh ta sẽ không nhận được nhiều hình nền tối có màu này, bởi vì màu chủ đạo của các hình nền này sẽ gần với màu đen.Lấy (các) màu chủ đạo của hình ảnh

Tôi có thể cho phép sử dụng nhiều màu chủ đạo để tìm kiếm (ví dụ: màu đen và xanh dương), nhưng điều đó sẽ làm cho việc tìm kiếm phức tạp hơn.

Có thư viện JavaScript nào (phải được thực hiện ở phía máy khách) có thể nhận được hình ảnh hue chi tiết nhất không? Và nếu không, bạn có bất kỳ ý tưởng về làm thế nào tôi có thể thực hiện một thuật toán để làm điều đó?

Cảm ơn bạn đã đọc :)

+0

Xem http://stackoverflow.com/questions/13811483/getting-dominant-color-of-an-image?rq=1 –

+0

Tôi chỉ tìm thấy màu sắc của màu chủ đạo http://stackoverflow.com/ question/3732046/how-do-you-get-the-hue-of-a-xxxxxx-màu – bkconrad

+0

@bkconrad, bạn sẽ thấy màu đen, theo OP. Trên thực tế ý tưởng tốt sẽ được tìm thấy màu sắc thống trị nhất sau khi màu đen (và cũng có thể trắng). –

Trả lời

2

Đây là câu hỏi thiết kế nhiều hơn Javascript. Màu chủ đạo không phải lúc nào cũng là màu chiếm nhiều pixel nhất. Đó là màu sắc bắt mắt của bạn. Ví dụ, nếu bạn chỉ cho ai đó một hình ảnh của một thiên hà màu hồng trên nền đen, màu chủ đạo không phải là màu đen, mà là màu hồng, bởi vì chủ thể chính là màu hồng. Vì vậy, bạn cần một algorythm phức tạp hơn nhiều.

Ngoài ra, màu đen và trắng về mặt kỹ thuật không phải màu sắc. Chúng chỉ hoàn toàn không có các điểm sáng hoặc cực sáng (hoặc nguồn ánh sáng) tương ứng. Vì vậy, tôi sẽ loại trừ bất kỳ điều gì tối hơn hoặc nhẹ hơn ngưỡng được xác định trước (ví dụ: loại trừ 5% trên cùng và dưới cùng trong tính toán của bạn).

EDIT:

Bản thân tôi thực sự có thể cố gắng để có được màu sắc của các pixel bão hòa nhất trên một ngưỡng nhất định (ví dụ, hơn X pixel đếm để tránh dương tính giả do tiếng ồn) với một lề của lỗi .

EDIT2:

Bạn có thể có thể thay đổi L155 để kiểm tra độ bão hòa và bóng tối của pixel. Bạn có thể muốn nhận được một thư viện của RGB-> HSB chuyển đổi cho mục đích này, nhưng tôi không biết nếu có một tốt.

+0

Cảm ơn câu trả lời của bạn! Trông giống như những gì Oleg nói. – Virus721

+0

Trong hình ảnh kỹ thuật số, nó không thực sự có ý nghĩa để nói rằng màu đen và trắng không phải là màu sắc kỹ thuật. Bây giờ, tôi không bận tâm tìm hiểu cách thức hoạt động của tên trộm màu này, nhưng nếu nó không thực hiện bất kỳ kiểu phân cụm màu nào thì các màu chủ đạo mà bạn thu được từ nó hầu hết là vô dụng.Thứ hai, có một số loại hiểu lầm đang diễn ra ở đây. Không có lý do gì để xem xét chỉ màu sắc thống trị, thay vào đó bạn muốn màu sắc thống trị của K, do đó, tìm kiếm một màu X duy nhất sẽ trả lại hình ảnh trong đó X có mặt trong danh sách các màu chủ đạo của K. – mmgp

+0

@mmgp: Chúng tôi đang nói về việc dịch ý định của người dùng thành dữ liệu. Vì vậy, nó quan trọng một _lot_ để biết cách mọi người cảm nhận màu sắc, không phải cách máy giải thích pixel. – hayavuk

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