-
Couldn't load subscription status.
- Fork 5.9k
Open
Description
For an RGGB Bayer matrix, COLOR_BayerBG2BGR should be used as described here - although most camera vendors describe it as RG, as discussed in opencv/opencv#19629
This seems to be a problem in cv::cuda::demosaicing, which interprets the color code differently to cv::cuda::cvtColor.
For cv::cuda::cvtColor COLOR_BayerBG2BGR works as documented, but COLOR_BayerRG2BGR needs to be used for cv::cuda::demosaicing.
Problem appears to be in cudaimgproc\src\color.cpp
void bayer_to_BGR(InputArray _src, OutputArray _dst, int dcn, bool blue_last, bool start_with_green, Stream& stream)
cv::cuda::demosaicing()
...
bayer_to_BGR(_src, _dst, dcn, code == cv::COLOR_BayerBG2BGR || code == cv::COLOR_BayerGB2BGR, code == cv::COLOR_BayerGB2BGR || code == cv::COLOR_BayerGR2BGR, stream);
blue_last is set to true for COLOR_BayerBG2BGR.
However, in the code used by cvtColor, this is set to false.
void bayerBG_to_BGR(InputArray src, OutputArray dst, int dcn, Stream& stream)
{
bayer_to_BGR(src, dst, dcn, false, false, stream);
}
Metadata
Metadata
Assignees
Labels
No labels