Làm thế nào để ước tính nhiệt độ màu của chất chiếu sáng từ một bức ảnh của biểu đồ màu tiêu chuẩn?


7

Tôi đang làm việc trên một máy ảnh kỹ thuật số vẫn còn. Tôi cần tính toán nhiệt độ màu của chất phát sáng theo chương trình bằng một số thuật toán (không sử dụng công cụ của bên thứ ba từ Adobe hoặc v.v.).

Trong trường hợp của tôi, hình ảnh được chụp bằng camera thử nghiệm / đang phát triển của tôi và đèn chiếu sáng không phải là đèn chiếu sáng tiêu chuẩn với nhiệt độ màu đã biết. Tôi cần điều này để chỉnh màu / cân bằng trắng. Tôi đang tìm cách ước tính Nhiệt độ màu (độ Kelvin) của chất phát sáng nguồn sáng dựa trên một số thống kê về dữ liệu RGB hoặc dữ liệu thô của hình ảnh đã chụp của biểu đồ màu tiêu chuẩn (24 mảng màu) dưới đèn chiếu sáng này.

Làm cách nào để ước tính nhiệt độ màu từ dữ liệu biểu đồ màu này?

Bất kỳ con trỏ hoặc đọc tài liệu hoặc thuật toán mà nói về nó sẽ giúp.


Tôi muốn đưa ra một câu trả lời, tuy nhiên tôi tò mò về một điều trước khi tôi làm. Bạn đang cố gắng tạo ra một thuật toán cân bằng trắng tự động, hay bạn đang cố gắng làm một cái gì đó khác? Cân bằng trắng không nhất thiết phải (hoặc thậm chí có thể) biết nhiệt độ màu của nguồn sáng tùy ý, nhưng có thể tự động cân bằng trắng hình ảnh.
jrista

jrista: Tôi biết người ta có thể thực hiện cân bằng trắng tự động khi biết nhiệt độ màu của chất phát sáng, chỉ bằng cách lấy các hệ số tỷ lệ được sử dụng để chia tỷ lệ các giá trị RGB và thực hiện AWB. Tôi đang cố gắng làm một cái gì đó khác.
Goldenmean

1
@gloldenmean: Bạn có thể giải thích chi tiết hơn những gì bạn đang cố gắng làm không? Tôi nghĩ rằng tôi có một ý tưởng chung, và nó có thể là có thể, mặc dù nó có thể sẽ cần một số công việc thuật toán ưa thích để đạt được.
jrista

Câu trả lời:


4

Để giữ cho mọi thứ đơn giản, sử dụng thẻ màu xám trung tính thay vì trình kiểm tra màu. Hoặc chỉ sử dụng một bản vá trung tính của trình kiểm tra màu. Bạn phải xác định trong ảnh khu vực tương ứng với thẻ vá / thẻ màu xám có liên quan, sau đó lấy trung bình các pixel thô R, G và B trên khu vực này. Đảm bảo không có pixel nào trong số đó bị bão hòa, nếu không thì bắt đầu lại với độ phơi sáng thấp hơn.

Bạn kết thúc với một bộ ba (R, G, B) là màu của chất phát sáng trong không gian màu gốc của máy ảnh của bạn. Sau đó chuyển đổi sang không gian màu chuẩn CIE bằng công thức như

⎛X⎞   ⎛            ⎞ ⎛R⎞
⎜Y⎟ = ⎜ 3×3 matrix ⎟ ⎜G⎟
⎝Z⎠   ⎝            ⎠ ⎝B⎠

trong đó ma trận là ma trận màu của cảm biến Bayer của bạn, mà bạn hy vọng đã biết. Từ đây, bạn có thể tính toán nhiệt độ màu tương quan bằng các công thức tiêu chuẩn.


2

Những gì bạn muốn làm có thể là một không gian vấn đề rất phức tạp. Lý thuyết màu sắc, hiệu chỉnh màu / cân bằng trắng, vv là một lĩnh vực rất phức tạp. Để chắc chắn tôi hiểu, bạn đang cố gắng tạo ra một thuật toán có thể đặt cân bằng trắng của cảnh một cách chính xác dựa trên nguồn sáng chiếu sáng trong cảnh. Có thể có thể làm những gì bạn cần làm và nhiều thuật toán bạn cần sử dụng sẽ có sẵn trong những ngày này.

Một số điểm cần xem xét và đưa yếu tố vào quá trình xử lý của bạn:

  • Không có nguồn sáng trong cảnh
    • Ví dụ: Mặt trời chiếu sáng một cảnh từ phía sau nhiếp ảnh gia
    • Một ví dụ khác: Đèn flash ngoài cảnh hoặc ánh sáng khác
    • Đây có lẽ là vấn đề lớn nhất và sẽ khiến cho việc chỉnh sửa màu dựa trên nguồn sáng trở nên không thể thực hiện được.
  • Nhiều nguồn sáng
    • Có thể có nhiều nguồn sáng có cùng nhiệt độ màu
    • Điều quan trọng hơn là nhiều nguồn sáng có nhiệt độ màu khác nhau
    • Câu hỏi chính: Bạn muốn điều gì xảy ra nếu một cảnh được chiếu sáng với nhiều nguồn sáng có màu khác nhau?
  • Nguồn sáng xung quanh so với điểm
    • Ví dụ: Mặt trời chiếu sáng một căn phòng thông qua một cửa sổ, với ánh sáng bổ sung chiếu sáng các phần bóng mờ
    • Câu hỏi chính: Bạn muốn cân bằng trắng ở nguồn nào?
  • Nguồn sáng của màu gốc
    • Đôi khi bạn có những cảnh được chiếu sáng bởi các nguồn sáng chính của màu sắc triệt để
    • Ví dụ: đỏ, xanh lá cây, xanh dương, tím, vàng, v.v.
    • Mặt phẳng xanh / vàng / đỏ có thể được coi là cực trị của nhiệt độ màu bình thường
    • Mặt phẳng Xanh / Tím / Đỏ có thể được coi là cực trị của tông màu
    • Không có màu bão hòa, chính hoặc phụ, làm cho mục tiêu tốt để cân bằng màu sắc cho cảnh, vì nó có thể tạo ra màu sắc rõ rệt trong hình ảnh của bạn
    • Câu hỏi chính: Bạn làm gì khi cảnh của bạn không có ánh sáng chung hoặc ánh sáng chính và được chiếu sáng hoàn toàn hoặc chủ yếu bởi các màu triệt để?

Nếu chúng tôi loại trừ không có ánh sáng trong cảnh và màu sắc triệt để khỏi không gian có vấn đề, có thể xác định và đo nhiệt độ màu của các nguồn sáng trong cảnh. Có một số thuật toán phát hiện hình dạng khá tiên tiến hiện nay, với điều kiện bạn có một cơ sở kha khá hoặc hình dạng nguồn sáng đã biết, sẽ có thể xác định tất cả các nguồn sáng trong một cảnh. Khi bạn đã xác định được từng nguồn sáng, có thể bạn có thể sử dụng một số loại tính toán tristimulus để xác định nhiệt độ màu của nguồn sáng, lấy các giá trị pixel phụ màu xanh lá cây, đỏ và xanh lam hoặc các giá trị pixel RAW bayer với trọng số phù hợp để tạo ra độ chói của bạn đỉnh núi.

Thuật toán của bạn trở nên đặc biệt phức tạp khi bạn liên quan đến chiếu sáng cảnh không chuẩn hoặc triệt để. Các nguồn sáng cực kỳ bão hòa sẽ không tạo ra các mục tiêu cân bằng trắng tốt, vì chúng nằm xa phạm vi "trắng" của một gam màu. Điều rất quan trọng là phải biết phần nào trong cảnh của bạn là "trung tính" nhất để bạn có thể chọn một "màu xám hoặc trắng" thích hợp để căn cứ vào cân bằng trắng của mình, vì về cơ bản đó là cách cân bằng trắng hoạt động. Có thể cân bằng màu sắc cảnh của bạn dựa trên một màu cơ bản khác, chẳng hạn như màu đỏ, tuy nhiên tôi không biết chính xác bạn sẽ cần sửa đổi các công thức toán học hiện tại như thế nào để phù hợp với cách tiếp cận như vậy (có một số lượng lớn toán học phức tạp tham gia vào lý thuyết màu sắc.)

Tình huống khó khăn nhất là khi không có nguồn sáng trong cảnh. Nếu cảnh được chiếu sáng bởi một nguồn sáng ngoài cảnh, thì việc tính nhiệt độ màu của nó là không thể. Nếu bạn muốn thực hiện một cách tiếp cận khá triệt để trong thiết kế máy ảnh, bạn có thể đặt một số cảm biến đo sáng cơ bản ở tất cả các mặt của thân máy. Điều đó sẽ cho phép đo ánh sáng từ mọi hướng, tuy nhiên nó sẽ không hoàn toàn chính xác và mức tăng cho tất cả các độ phức tạp thêm có thể sẽ không đáng kể. Một cách tiếp cận khác có thể là tạo ra một thiết bị hotshoe có thể kết nối với nhiều máy đo điểm có thể cung cấp số đọc chiếu sáng chính xác cho máy ảnh cho bất kỳ nguồn sáng nào bạn chỉ vào một mét. Các cảnh có nhiều nguồn sáng hoặc nguồn có màu triệt để vẫn sẽ tạo ra một thuật toán rất phức tạp.

Ví dụ, cố gắng xác định nhiệt độ màu của các nguồn sáng cảnh của bạn từ một bức ảnh đơn giản của thẻ chỉnh màu, sẽ vô cùng khó khăn nếu không thể nói thẳng ra là không thể. Bạn sẽ phải đưa ra quá nhiều giả định, hoặc bạn sẽ phải biết trước về loại ánh sáng nào đang chiếu sáng cảnh của bạn. Đây thường là lý do tại sao cân bằng trắng / chỉnh màu thường được thực hiện bằng cách đặt cân bằng trắng của cảnh dựa trên màu trung tính đã biết trong cảnh. Chụp ảnh phong cảnh hai lần trong cùng một ánh sáng, một lần và một lần không có thẻ chỉnh màu, cho phép bạn chọn màu trắng trung tính hoặc thuần khiết hợp lệ trong quá trình xử lý hậu kỳ, điều này sẽ đặt cân bằng màu phù hợp. Bản thân tôi có X-Rite ColorChecker Passport, bao gồm hai hàng mẫu màu chỉnh sửa. Một hàng dành cho phong cảnh và hàng còn lại dành cho ảnh chân dung, và chúng tiến triển từ các mảng màu hơi mát sang hơi ấm. Tôi có thể đặt loại cân bằng màu mà tôi muốn cho các cảnh của mình, có xu hướng ấm hơn để chụp ảnh phong cảnh và tông màu trắng trung tính hơn (5500k-6500k) cho những thứ như động vật hoang dã hoặc vĩ mô.

Nếu bạn đang làm một cái gì đó chuyên biệt hơn đáng kể, bạn có thể xác định một không gian vấn đề nhỏ hơn trong đó bạn có thể tạo ra một thuật toán thực hiện những gì bạn cần. Không gian vấn đề sẽ phải khá hẹp, với các tham số và giới hạn được xác định khá rõ, để tạo ra đủ dữ liệu nổi tiếng để giúp thuật toán đưa ra quyết định chính xác khi cân bằng trắng một cảnh. Bất kỳ cảnh nào không có nguồn sáng chính trong khung sẽ rất khó thực hiện bất kỳ cân bằng trắng tự động hoặc hiệu chỉnh màu nào.


Cảm ơn. Vài câu hỏi hơn nếu bạn cho phép. 1] Làm thế nào để tạo ra 3 đỉnh độ chói - Có phải bằng cách tính trung bình của dữ liệu R, G và B thu được sau khi khử màu? 2] Ý bạn là gì khi "trung bình các mẫu sẽ tạo ra số đọc nhiệt độ màu khá chính xác"? Các bước tính toán ở đây là gì?
Goldenmean

1

Tôi có hiểu chính xác bạn rằng mục đích của việc này là bạn đang xây dựng một máy ảnh kỹ thuật số mới không? Tức là làm việc về phát triển phần sụn, và đó là điều gì?

Nếu vậy, dường như có một số thông tin tốt về bài viết Nhiệt độ màu của wikipedia , cụ thể là phần Tính toán .

Đây không phải là điều tôi thực sự đã làm trước đây, vì vậy kiến ​​thức của tôi bị hạn chế. Tuy nhiên, tôi nên nghĩ rằng một phần quan trọng của việc này là biết hình ảnh đó là gì. Vì vậy, chụp một thẻ màu trắng hoặc xám trung tính, với ánh sáng đều, sẽ là một lựa chọn rõ ràng. Và sự lựa chọn của bạn về biểu đồ màu tiêu chuẩn cũng tốt, miễn là phần mềm của bạn biết phần nào của thẻ bất kỳ tập hợp pixel nào mà bạn sẽ thực hiện tính toán dựa trên. Vì vậy, nếu bạn dự định thực hiện một loạt ảnh chụp thẻ đó trong các tình huống ánh sáng khác nhau, bạn sẽ muốn tạo ra một loại giàn khoan có thể giữ thẻ ở cùng một vị trí so với máy ảnh cho mỗi lần chụp hoặc xác định vị trí của thẻ (có lẽ với phương pháp phát hiện cạnh và / hoặc các phương pháp tương tự như vậy).

Tất nhiên, bạn cũng sẽ muốn kiểm tra kết quả của mình theo các giá trị đã biết ... một máy đo ánh sáng so màu hoặc (các) thiết bị khác có thể được yêu cầu mua để thực sự làm điều này đúng. Và có nhiều loại khác nhau ... những thứ dành cho các nhiếp ảnh gia (hoặc người quay phim hoặc nhiếp ảnh gia hình ảnh chuyển động) dường như xuất hiện với một tìm kiếm google , trong khi những người có thể định hướng hơn trong phòng thí nghiệm cũng tồn tại . Tôi biết một người có đồng hồ đo, ví dụ, có một quả cầu nhỏ (đường kính 1cm, hoặc hơn) ở đầu que, sau đó móc vào cổng USB trên máy tính và đo cường độ ánh sáng ở các tần số khác nhau, đưa ra một phân tích phổ thực sự của một nguồn ánh sáng. Tôi không chắc chính xác thiết bị đó được gọi là gì, nhưng tôi có thể tìm ra, nếu điều đó hữu ích.

Tất nhiên, những thiết bị đó cũng phải làm điều đó bằng cách nào đó, vì vậy có lẽ chỉ cần học lý thuyết và toán học của nó sẽ làm nên chuyện? :) Nhiều mục hữu ích (và tôi chắc chắn một số mục ít hữu ích hơn có thể được tìm thấy với một tìm kiếm google . Tôi tưởng tượng bạn có một số nghiên cứu nghiêm túc trước bạn, ngoài phạm vi những gì bạn sẽ có thể nhận được câu trả lời khó ở đây. Hy vọng rằng điều này cung cấp cho bạn một số điểm bắt đầu, mặc dù.


@ Có: Tôi dự định sửa thẻ thành kẹp được kẹp vào bàn, thiết bị camera cũng cố định vào kẹp và thay đổi nguồn sáng.
Goldenmean
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.