Skip to content

Commit 37be9dd

Browse files
committed
add enum Bayer**2BGRA
- let it possible to reach Bayer2BGRA conversion
1 parent 3476440 commit 37be9dd

File tree

5 files changed

+35
-9
lines changed

5 files changed

+35
-9
lines changed

modules/imgproc/include/opencv2/imgproc.hpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -769,8 +769,18 @@ enum ColorConversionCodes {
769769
COLOR_BayerRG2RGB_EA = COLOR_BayerBG2BGR_EA,
770770
COLOR_BayerGR2RGB_EA = COLOR_BayerGB2BGR_EA,
771771

772-
773-
COLOR_COLORCVT_MAX = 139
772+
//! Demosaicing with alpha channel
773+
COLOR_BayerBG2BGRA = 139,
774+
COLOR_BayerGB2BGRA = 140,
775+
COLOR_BayerRG2BGRA = 141,
776+
COLOR_BayerGR2BGRA = 142,
777+
778+
COLOR_BayerBG2RGBA = COLOR_BayerRG2BGRA,
779+
COLOR_BayerGB2RGBA = COLOR_BayerGR2BGRA,
780+
COLOR_BayerRG2RGBA = COLOR_BayerBG2BGRA,
781+
COLOR_BayerGR2RGBA = COLOR_BayerGB2BGRA,
782+
783+
COLOR_COLORCVT_MAX = 143
774784
};
775785

776786
/** types of intersection between rectangles

modules/imgproc/include/opencv2/imgproc/types_c.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,17 @@ enum
349349
CV_BayerRG2RGB_EA = CV_BayerBG2BGR_EA,
350350
CV_BayerGR2RGB_EA = CV_BayerGB2BGR_EA,
351351

352-
CV_COLORCVT_MAX = 139
352+
CV_BayerBG2BGRA =139,
353+
CV_BayerGB2BGRA =140,
354+
CV_BayerRG2BGRA =141,
355+
CV_BayerGR2BGRA =142,
356+
357+
CV_BayerBG2RGBA =CV_BayerRG2BGRA,
358+
CV_BayerGB2RGBA =CV_BayerGR2BGRA,
359+
CV_BayerRG2RGBA =CV_BayerBG2BGRA,
360+
CV_BayerGR2RGBA =CV_BayerGB2BGRA,
361+
362+
CV_COLORCVT_MAX = 143
353363
};
354364

355365

modules/imgproc/perf/perf_cvt_color.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,10 @@ CV_ENUM(CvtMode,
103103

104104

105105
CV_ENUM(CvtModeBayer,
106-
COLOR_BayerBG2BGR, COLOR_BayerBG2BGR_VNG, COLOR_BayerBG2GRAY,
107-
COLOR_BayerGB2BGR, COLOR_BayerGB2BGR_VNG, COLOR_BayerGB2GRAY,
108-
COLOR_BayerGR2BGR, COLOR_BayerGR2BGR_VNG, COLOR_BayerGR2GRAY,
109-
COLOR_BayerRG2BGR, COLOR_BayerRG2BGR_VNG, COLOR_BayerRG2GRAY
106+
COLOR_BayerBG2BGR, COLOR_BayerBG2BGRA, COLOR_BayerBG2BGR_VNG, COLOR_BayerBG2GRAY,
107+
COLOR_BayerGB2BGR, COLOR_BayerGB2BGRA, COLOR_BayerGB2BGR_VNG, COLOR_BayerGB2GRAY,
108+
COLOR_BayerGR2BGR, COLOR_BayerGR2BGRA, COLOR_BayerGR2BGR_VNG, COLOR_BayerGR2GRAY,
109+
COLOR_BayerRG2BGR, COLOR_BayerRG2BGRA, COLOR_BayerRG2BGR_VNG, COLOR_BayerRG2GRAY
110110
)
111111

112112

@@ -149,6 +149,8 @@ ChPair getConversionInfo(int cvtMode)
149149
case COLOR_YUV2BGRA_NV21: case COLOR_YUV2RGBA_NV21:
150150
case COLOR_YUV2BGRA_YV12: case COLOR_YUV2RGBA_YV12:
151151
case COLOR_YUV2BGRA_IYUV: case COLOR_YUV2RGBA_IYUV:
152+
case COLOR_BayerBG2BGRA: case COLOR_BayerGB2BGRA:
153+
case COLOR_BayerGR2BGRA: case COLOR_BayerRG2BGRA:
152154
return ChPair(1,4);
153155
case COLOR_BGR5552GRAY: case COLOR_BGR5652GRAY:
154156
return ChPair(2,1);

modules/imgproc/src/color.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9852,6 +9852,7 @@ void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn )
98529852
case CV_BayerBG2BGR: case CV_BayerGB2BGR: case CV_BayerRG2BGR: case CV_BayerGR2BGR:
98539853
case CV_BayerBG2BGR_VNG: case CV_BayerGB2BGR_VNG: case CV_BayerRG2BGR_VNG: case CV_BayerGR2BGR_VNG:
98549854
case CV_BayerBG2BGR_EA: case CV_BayerGB2BGR_EA: case CV_BayerRG2BGR_EA: case CV_BayerGR2BGR_EA:
9855+
case CV_BayerBG2BGRA: case CV_BayerGB2BGRA: case CV_BayerRG2BGRA: case CV_BayerGR2BGRA:
98559856
demosaicing(src, _dst, code, dcn);
98569857
break;
98579858

modules/imgproc/src/demosaicing.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1643,6 +1643,7 @@ void cv::demosaicing(InputArray _src, OutputArray _dst, int code, int dcn)
16431643
break;
16441644

16451645
case CV_BayerBG2BGR: case CV_BayerGB2BGR: case CV_BayerRG2BGR: case CV_BayerGR2BGR:
1646+
case CV_BayerBG2BGRA: case CV_BayerGB2BGRA: case CV_BayerRG2BGRA: case CV_BayerGR2BGRA:
16461647
case CV_BayerBG2BGR_VNG: case CV_BayerGB2BGR_VNG: case CV_BayerRG2BGR_VNG: case CV_BayerGR2BGR_VNG:
16471648
{
16481649
if (dcn <= 0)
@@ -1652,8 +1653,10 @@ void cv::demosaicing(InputArray _src, OutputArray _dst, int code, int dcn)
16521653
_dst.create(sz, CV_MAKE_TYPE(depth, dcn));
16531654
Mat dst_ = _dst.getMat();
16541655

1655-
if( code == CV_BayerBG2BGR || code == CV_BayerGB2BGR ||
1656-
code == CV_BayerRG2BGR || code == CV_BayerGR2BGR )
1656+
if( code == CV_BayerBG2BGR || code == CV_BayerBG2BGRA ||
1657+
code == CV_BayerGB2BGR || code == CV_BayerGB2BGRA ||
1658+
code == CV_BayerRG2BGR || code == CV_BayerRG2BGRA ||
1659+
code == CV_BayerGR2BGR || code == CV_BayerGR2BGRA )
16571660
{
16581661
if( depth == CV_8U )
16591662
Bayer2RGB_<uchar, SIMDBayerInterpolator_8u>(src, dst_, code);

0 commit comments

Comments
 (0)