Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenCV
opencv
提交
85fd8729
O
opencv
项目概览
OpenCV
/
opencv
上一次同步 9 个月
通知
993
Star
71100
Fork
55581
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
85fd8729
编写于
11月 02, 2021
作者:
A
Alexander Alekhin
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #20970 from s-trinh:update_Bayer_naming
上级
bce76a79
30d6766d
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
98 addition
and
46 deletion
+98
-46
modules/imgproc/doc/colors.markdown
modules/imgproc/doc/colors.markdown
+11
-4
modules/imgproc/doc/pics/Bayer_patterns.png
modules/imgproc/doc/pics/Bayer_patterns.png
+0
-0
modules/imgproc/include/opencv2/imgproc.hpp
modules/imgproc/include/opencv2/imgproc.hpp
+87
-42
未找到文件。
modules/imgproc/doc/colors.markdown
浏览文件 @
85fd8729
...
...
@@ -151,16 +151,23 @@ sources on the web, primarily from the Charles Poynton site <http://www.poynton.
Bayer \f$\rightarrow\f$ RGB
---------------------------
The Bayer pattern is widely used in CCD and CMOS cameras. It enables you to get color pictures
from a single plane where R,G, and B pixels (sensors of a particular component) are interleaved
from a single plane where R,
G, and B pixels (sensors of a particular component) are interleaved
as follows:
![
Bayer pattern
](
pics/bayer
.png
)
![
Bayer pattern
s (BGGR, GBRG, GRGB, RGGB)
](
pics/Bayer_patterns
.png
)
The output RGB components of a pixel are interpolated from 1, 2, or 4 neighbors of the pixel
having the same color. There are several modifications of the above pattern that can be achieved
having the same color.
@note See the following for information about correspondences between OpenCV Bayer pattern naming and classical Bayer pattern naming.
![
Bayer pattern
](
pics/bayer.png
)
There are several modifications of the above pattern that can be achieved
by shifting the pattern one pixel left and/or one pixel up. The two letters
\f
$C_1
\f
$ and
\f
$C_2
\f
$ in
the conversion constants CV_Bayer
\f
$C_1 C_2
\f
$ 2BGR and CV_Bayer
\f
$C_1 C_2
\f
$ 2RGB indicate the
particular pattern type. These are components from the second row, second and third columns,
respectively. For example, the above pattern has a very popular "BG" type.
@see cv::COLOR_BayerBG2BGR, cv::COLOR_BayerGB2BGR, cv::COLOR_BayerRG2BGR, cv::COLOR_BayerGR2BGR, cv::COLOR_BayerBG2RGB, cv::COLOR_BayerGB2RGB, cv::COLOR_BayerRG2RGB, cv::COLOR_BayerGR2RGB
@see cv::COLOR_BayerRGGB2BGR, cv::COLOR_BayerGRBG2BGR, cv::COLOR_BayerBGGR2BGR, cv::COLOR_BayerGBRG2BGR, cv::COLOR_BayerRGGB2RGB, cv::COLOR_BayerGRBG2RGB, cv::COLOR_BayerBGGR2RGB, cv::COLOR_BayerGBRG2RGB
cv::COLOR_BayerBG2BGR, cv::COLOR_BayerGB2BGR, cv::COLOR_BayerRG2BGR, cv::COLOR_BayerGR2BGR, cv::COLOR_BayerBG2RGB, cv::COLOR_BayerGB2RGB, cv::COLOR_BayerRG2RGB, cv::COLOR_BayerGR2RGB
modules/imgproc/doc/pics/Bayer_patterns.png
0 → 100755
浏览文件 @
85fd8729
此差异由.gitattributes 抑制。
modules/imgproc/include/opencv2/imgproc.hpp
浏览文件 @
85fd8729
...
...
@@ -744,54 +744,99 @@ enum ColorConversionCodes {
COLOR_RGBA2YUV_YV12
=
133
,
COLOR_BGRA2YUV_YV12
=
134
,
//! Demosaicing
COLOR_BayerBG2BGR
=
46
,
COLOR_BayerGB2BGR
=
47
,
COLOR_BayerRG2BGR
=
48
,
COLOR_BayerGR2BGR
=
49
,
COLOR_BayerBG2RGB
=
COLOR_BayerRG2BGR
,
COLOR_BayerGB2RGB
=
COLOR_BayerGR2BGR
,
COLOR_BayerRG2RGB
=
COLOR_BayerBG2BGR
,
COLOR_BayerGR2RGB
=
COLOR_BayerGB2BGR
,
COLOR_BayerBG2GRAY
=
86
,
COLOR_BayerGB2GRAY
=
87
,
COLOR_BayerRG2GRAY
=
88
,
COLOR_BayerGR2GRAY
=
89
,
//! Demosaicing, see @ref color_convert_bayer "color conversions" for additional information
COLOR_BayerBG2BGR
=
46
,
//!< equivalent to RGGB Bayer pattern
COLOR_BayerGB2BGR
=
47
,
//!< equivalent to GRBG Bayer pattern
COLOR_BayerRG2BGR
=
48
,
//!< equivalent to BGGR Bayer pattern
COLOR_BayerGR2BGR
=
49
,
//!< equivalent to GBRG Bayer pattern
COLOR_BayerRGGB2BGR
=
COLOR_BayerBG2BGR
,
COLOR_BayerGRBG2BGR
=
COLOR_BayerGB2BGR
,
COLOR_BayerBGGR2BGR
=
COLOR_BayerRG2BGR
,
COLOR_BayerGBRG2BGR
=
COLOR_BayerGR2BGR
,
COLOR_BayerRGGB2RGB
=
COLOR_BayerBGGR2BGR
,
COLOR_BayerGRBG2RGB
=
COLOR_BayerGBRG2BGR
,
COLOR_BayerBGGR2RGB
=
COLOR_BayerRGGB2BGR
,
COLOR_BayerGBRG2RGB
=
COLOR_BayerGRBG2BGR
,
COLOR_BayerBG2RGB
=
COLOR_BayerRG2BGR
,
//!< equivalent to RGGB Bayer pattern
COLOR_BayerGB2RGB
=
COLOR_BayerGR2BGR
,
//!< equivalent to GRBG Bayer pattern
COLOR_BayerRG2RGB
=
COLOR_BayerBG2BGR
,
//!< equivalent to BGGR Bayer pattern
COLOR_BayerGR2RGB
=
COLOR_BayerGB2BGR
,
//!< equivalent to GBRG Bayer pattern
COLOR_BayerBG2GRAY
=
86
,
//!< equivalent to RGGB Bayer pattern
COLOR_BayerGB2GRAY
=
87
,
//!< equivalent to GRBG Bayer pattern
COLOR_BayerRG2GRAY
=
88
,
//!< equivalent to BGGR Bayer pattern
COLOR_BayerGR2GRAY
=
89
,
//!< equivalent to GBRG Bayer pattern
COLOR_BayerRGGB2GRAY
=
COLOR_BayerBG2GRAY
,
COLOR_BayerGRBG2GRAY
=
COLOR_BayerGB2GRAY
,
COLOR_BayerBGGR2GRAY
=
COLOR_BayerRG2GRAY
,
COLOR_BayerGBRG2GRAY
=
COLOR_BayerGR2GRAY
,
//! Demosaicing using Variable Number of Gradients
COLOR_BayerBG2BGR_VNG
=
62
,
COLOR_BayerGB2BGR_VNG
=
63
,
COLOR_BayerRG2BGR_VNG
=
64
,
COLOR_BayerGR2BGR_VNG
=
65
,
COLOR_BayerBG2RGB_VNG
=
COLOR_BayerRG2BGR_VNG
,
COLOR_BayerGB2RGB_VNG
=
COLOR_BayerGR2BGR_VNG
,
COLOR_BayerRG2RGB_VNG
=
COLOR_BayerBG2BGR_VNG
,
COLOR_BayerGR2RGB_VNG
=
COLOR_BayerGB2BGR_VNG
,
COLOR_BayerBG2BGR_VNG
=
62
,
//!< equivalent to RGGB Bayer pattern
COLOR_BayerGB2BGR_VNG
=
63
,
//!< equivalent to GRBG Bayer pattern
COLOR_BayerRG2BGR_VNG
=
64
,
//!< equivalent to BGGR Bayer pattern
COLOR_BayerGR2BGR_VNG
=
65
,
//!< equivalent to GBRG Bayer pattern
COLOR_BayerRGGB2BGR_VNG
=
COLOR_BayerBG2BGR_VNG
,
COLOR_BayerGRBG2BGR_VNG
=
COLOR_BayerGB2BGR_VNG
,
COLOR_BayerBGGR2BGR_VNG
=
COLOR_BayerRG2BGR_VNG
,
COLOR_BayerGBRG2BGR_VNG
=
COLOR_BayerGR2BGR_VNG
,
COLOR_BayerRGGB2RGB_VNG
=
COLOR_BayerBGGR2BGR_VNG
,
COLOR_BayerGRBG2RGB_VNG
=
COLOR_BayerGBRG2BGR_VNG
,
COLOR_BayerBGGR2RGB_VNG
=
COLOR_BayerRGGB2BGR_VNG
,
COLOR_BayerGBRG2RGB_VNG
=
COLOR_BayerGRBG2BGR_VNG
,
COLOR_BayerBG2RGB_VNG
=
COLOR_BayerRG2BGR_VNG
,
//!< equivalent to RGGB Bayer pattern
COLOR_BayerGB2RGB_VNG
=
COLOR_BayerGR2BGR_VNG
,
//!< equivalent to GRBG Bayer pattern
COLOR_BayerRG2RGB_VNG
=
COLOR_BayerBG2BGR_VNG
,
//!< equivalent to BGGR Bayer pattern
COLOR_BayerGR2RGB_VNG
=
COLOR_BayerGB2BGR_VNG
,
//!< equivalent to GBRG Bayer pattern
//! Edge-Aware Demosaicing
COLOR_BayerBG2BGR_EA
=
135
,
COLOR_BayerGB2BGR_EA
=
136
,
COLOR_BayerRG2BGR_EA
=
137
,
COLOR_BayerGR2BGR_EA
=
138
,
COLOR_BayerBG2RGB_EA
=
COLOR_BayerRG2BGR_EA
,
COLOR_BayerGB2RGB_EA
=
COLOR_BayerGR2BGR_EA
,
COLOR_BayerRG2RGB_EA
=
COLOR_BayerBG2BGR_EA
,
COLOR_BayerGR2RGB_EA
=
COLOR_BayerGB2BGR_EA
,
COLOR_BayerBG2BGR_EA
=
135
,
//!< equivalent to RGGB Bayer pattern
COLOR_BayerGB2BGR_EA
=
136
,
//!< equivalent to GRBG Bayer pattern
COLOR_BayerRG2BGR_EA
=
137
,
//!< equivalent to BGGR Bayer pattern
COLOR_BayerGR2BGR_EA
=
138
,
//!< equivalent to GBRG Bayer pattern
COLOR_BayerRGGB2BGR_EA
=
COLOR_BayerBG2BGR_EA
,
COLOR_BayerGRBG2BGR_EA
=
COLOR_BayerGB2BGR_EA
,
COLOR_BayerBGGR2BGR_EA
=
COLOR_BayerRG2BGR_EA
,
COLOR_BayerGBRG2BGR_EA
=
COLOR_BayerGR2BGR_EA
,
COLOR_BayerRGGB2RGB_EA
=
COLOR_BayerBGGR2BGR_EA
,
COLOR_BayerGRBG2RGB_EA
=
COLOR_BayerGBRG2BGR_EA
,
COLOR_BayerBGGR2RGB_EA
=
COLOR_BayerRGGB2BGR_EA
,
COLOR_BayerGBRG2RGB_EA
=
COLOR_BayerGRBG2BGR_EA
,
COLOR_BayerBG2RGB_EA
=
COLOR_BayerRG2BGR_EA
,
//!< equivalent to RGGB Bayer pattern
COLOR_BayerGB2RGB_EA
=
COLOR_BayerGR2BGR_EA
,
//!< equivalent to GRBG Bayer pattern
COLOR_BayerRG2RGB_EA
=
COLOR_BayerBG2BGR_EA
,
//!< equivalent to BGGR Bayer pattern
COLOR_BayerGR2RGB_EA
=
COLOR_BayerGB2BGR_EA
,
//!< equivalent to GBRG Bayer pattern
//! Demosaicing with alpha channel
COLOR_BayerBG2BGRA
=
139
,
COLOR_BayerGB2BGRA
=
140
,
COLOR_BayerRG2BGRA
=
141
,
COLOR_BayerGR2BGRA
=
142
,
COLOR_BayerBG2RGBA
=
COLOR_BayerRG2BGRA
,
COLOR_BayerGB2RGBA
=
COLOR_BayerGR2BGRA
,
COLOR_BayerRG2RGBA
=
COLOR_BayerBG2BGRA
,
COLOR_BayerGR2RGBA
=
COLOR_BayerGB2BGRA
,
COLOR_BayerBG2BGRA
=
139
,
//!< equivalent to RGGB Bayer pattern
COLOR_BayerGB2BGRA
=
140
,
//!< equivalent to GRBG Bayer pattern
COLOR_BayerRG2BGRA
=
141
,
//!< equivalent to BGGR Bayer pattern
COLOR_BayerGR2BGRA
=
142
,
//!< equivalent to GBRG Bayer pattern
COLOR_BayerRGGB2BGRA
=
COLOR_BayerBG2BGRA
,
COLOR_BayerGRBG2BGRA
=
COLOR_BayerGB2BGRA
,
COLOR_BayerBGGR2BGRA
=
COLOR_BayerRG2BGRA
,
COLOR_BayerGBRG2BGRA
=
COLOR_BayerGR2BGRA
,
COLOR_BayerRGGB2RGBA
=
COLOR_BayerBGGR2BGRA
,
COLOR_BayerGRBG2RGBA
=
COLOR_BayerGBRG2BGRA
,
COLOR_BayerBGGR2RGBA
=
COLOR_BayerRGGB2BGRA
,
COLOR_BayerGBRG2RGBA
=
COLOR_BayerGRBG2BGRA
,
COLOR_BayerBG2RGBA
=
COLOR_BayerRG2BGRA
,
//!< equivalent to RGGB Bayer pattern
COLOR_BayerGB2RGBA
=
COLOR_BayerGR2BGRA
,
//!< equivalent to GRBG Bayer pattern
COLOR_BayerRG2RGBA
=
COLOR_BayerBG2BGRA
,
//!< equivalent to BGGR Bayer pattern
COLOR_BayerGR2RGBA
=
COLOR_BayerGB2BGRA
,
//!< equivalent to GBRG Bayer pattern
COLOR_COLORCVT_MAX
=
143
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录