Chỉ cần chuyển đổi hình ảnh của bạn thành YUV format và tính trung bình của kênh luma. Chuyển đổi màu là một hoạt động điển hình và bất kỳ khung xử lý ảnh phong nha nào cũng hỗ trợ nó. Ví dụ, OpenCV (bạn nói OpenGL, nhưng điều đó thực sự không liên quan gì đến xử lý ảnh, tôi giả sử bạn có nghĩa là OpenCV) có CvtColor.
Nếu bạn không có một khuôn khổ như vậy tiện dụng nhưng có quyền truy cập vào các cường độ pixel, bạn có thể sử dụng phương trình:
Y' = 0.299*R + 0.587*G + 0.144*B
để có được những kênh luma, và sau đó tính toán mức trung bình. R, G và B đại diện cho các kênh màu đỏ, xanh lá cây và xanh dương tương ứng.
EDIT
Lưu ý rằng nó có thể là máy ảnh của bạn sẽ bù đắp cho những cảnh tươi sáng/tối bằng cách thay đổi khẩu độ của nó. Điều này phụ thuộc vào máy ảnh, nhưng tôi nghĩ hầu hết các máy ảnh đều làm điều này - nếu không, ảnh của bạn có thể kết thúc hoặc bão hòa (màu trắng tinh khiết) hoặc màu đen đơn thuần - trong cả hai trường hợp, vô dụng. Mắt người thực sự là do the same thing.
Nhược điểm là rất khó để biết bạn đang ở trong một môi trường tối hoặc sáng chỉ bằng cách nhìn vào một hình ảnh. Trong trường hợp đó, bạn có thể phải vượt ra ngoài hình ảnh và truy vấn máy ảnh. Về lý thuyết, bạn có thể thực hiện điều này trực tiếp thông qua trình điều khiển (không chắc) hoặc có thể bằng cách xem siêu dữ liệu hình ảnh (ví dụ: với JPEG, có EXIF).
Cuối cùng, bạn chưa nói chính xác bạn muốn biết độ sáng của. Nếu đó là cảnh tổng thể, thì trung bình sẽ đủ tốt. Nếu đó là một phần của cảnh, bạn có thể phải làm điều gì đó thông minh hơn một chút. Hãy cho chúng tôi biết nếu đó là trường hợp.
Cảm ơn, tôi đoán điều đó có hiệu quả. Tôi sẽ thử và đăng kết quả ở đây. – krafter
Hãy xem nhận xét đã chỉnh sửa của tôi - Tôi đã xác định được một vấn đề tiềm năng và một số cách bạn có thể giải quyết nó. – misha
Có, điều này thực sự hoạt động: nhận được thông tin pixel chia nó thành cường độ màu của nó sau đó tính toán Y như bạn đã hiển thị ở đây. Vì tôi cần giá trị độ sáng trung bình của các xung ánh sáng nhỏ (nhanh) trước khi máy ảnh có thể điều chỉnh nó, phương pháp này hoạt động tốt. Cảm ơn một lần nữa. – krafter