Skip to content

Commit adfa210

Browse files
committed
support brightness computation for all bayer image types
1 parent 5ea9446 commit adfa210

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

spinnaker_camera_driver/include/spinnaker_camera_driver/pixel_format.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ enum PixelFormat {
5656
};
5757
std::string to_string(PixelFormat f);
5858
PixelFormat from_nodemap_string(const std::string pixFmt);
59+
bool is_bayer(PixelFormat f);
5960
} // namespace pixel_format
6061
} // namespace spinnaker_camera_driver
6162
#endif // SPINNAKER_CAMERA_DRIVER__PIXEL_FORMAT_HPP_

spinnaker_camera_driver/src/pixel_format.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include <spinnaker_camera_driver/pixel_format.hpp>
1717
#include <string>
1818
#include <unordered_map>
19+
#include <unordered_set>
1920

2021
namespace spinnaker_camera_driver
2122
{
@@ -81,12 +82,18 @@ static const std::unordered_map<std::string, PixelFormat> string_2_fmt{
8182
{"BGR8", BGR8},
8283
{"BGRa8", BGRa8}}};
8384

85+
static const std::unordered_set<PixelFormat> bayer_formats{
86+
BayerRG8, BayerRG10p, BayerRG10Packed, BayerRG12p, BayerRG12Packed, BayerRG16,
87+
BayerGR8, BayerGR16, BayerGB8, BayerGB16, BayerBG8, BayerBG16};
88+
8489
PixelFormat from_nodemap_string(const std::string pixFmt)
8590
{
8691
auto it = string_2_fmt.find(pixFmt);
8792
return (it == string_2_fmt.end() ? INVALID : it->second);
8893
}
8994

95+
bool is_bayer(const PixelFormat f) { return (bayer_formats.find(f) != bayer_formats.end()); }
96+
9097
std::string to_string(PixelFormat f)
9198
{
9299
auto it = fmt_2_string.find(f);

spinnaker_camera_driver/src/spinnaker_wrapper_impl.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ static int int_ceil(size_t x, int y)
286286
static int16_t compute_brightness(
287287
pixel_format::PixelFormat pf, const uint8_t * data, size_t w, size_t h, size_t stride, int skip)
288288
{
289-
if (pf != pixel_format::BayerRG8) {
289+
if (!pixel_format::is_bayer(pf)) {
290290
return (0);
291291
}
292292
const uint64_t cnt = int_ceil(w, skip) * int_ceil(h, skip);

0 commit comments

Comments
 (0)