Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
0c0b1ec9
O
Opencv
项目概览
Greenplum
/
Opencv
大约 1 年 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0c0b1ec9
编写于
12月 04, 2021
作者:
A
Alexander Alekhin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
imgproc(test): add bit-exact tests for YUV cvtColor conversions
上级
35ff9af6
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
77 addition
and
0 deletion
+77
-0
modules/imgproc/test/test_color.cpp
modules/imgproc/test/test_color.cpp
+77
-0
未找到文件。
modules/imgproc/test/test_color.cpp
浏览文件 @
0c0b1ec9
...
@@ -2812,6 +2812,83 @@ TEST(Imgproc_ColorLuv_Full, bitExactness)
...
@@ -2812,6 +2812,83 @@ TEST(Imgproc_ColorLuv_Full, bitExactness)
}
}
}
}
static
void
runCvtColorBitExactCheck
(
ColorConversionCodes
code
,
int
inputType
,
uint32_t
hash
,
Size
sz
=
Size
(
263
,
255
),
int
rngSeed
=
0
)
{
RNG
rng
(
rngSeed
);
Mat
src
(
sz
,
inputType
,
Scalar
::
all
(
0
));
Mat
dst
;
rng
.
fill
(
src
,
RNG
::
UNIFORM
,
0
,
255
,
true
);
cv
::
cvtColor
(
src
,
dst
,
code
);
uint32_t
dst_hash
=
adler32
(
dst
);
EXPECT_EQ
(
hash
,
dst_hash
)
<<
cv
::
format
(
"0x%08llx"
,
(
long
long
int
)
dst_hash
);
if
(
cvtest
::
debugLevel
>
0
)
{
const
::
testing
::
TestInfo
*
const
test_info
=
::
testing
::
UnitTest
::
GetInstance
()
->
current_test_info
();
CV_Assert
(
test_info
);
std
::
string
name
=
(
std
::
string
(
test_info
->
test_case_name
())
+
"--"
+
test_info
->
name
()
+
".xml"
);
cv
::
FileStorage
fs
(
name
,
cv
::
FileStorage
::
WRITE
);
fs
<<
"dst"
<<
dst
;
}
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_BGR2YUV
)
{
runCvtColorBitExactCheck
(
COLOR_BGR2YUV
,
CV_8UC3
,
0xc2cbcfda
);
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_RGB2YUV
)
{
runCvtColorBitExactCheck
(
COLOR_RGB2YUV
,
CV_8UC3
,
0x4e98e757
);
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2BGR
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2BGR
,
CV_8UC3
,
0xb2c62a3f
);
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2RGB
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2RGB
,
CV_8UC3
,
0x6d242a3f
);
}
// packed input
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2RGB_NV12
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2RGB_NV12
,
CV_8UC1
,
0x46a1bb76
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2BGR_NV12
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2BGR_NV12
,
CV_8UC1
,
0x3843bb76
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2RGB_NV21
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2RGB_NV21
,
CV_8UC1
,
0xf3fdf2ea
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2BGR_NV21
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2BGR_NV21
,
CV_8UC1
,
0x6e84f2ea
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2RGBA_NV12
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2RGBA_NV12
,
CV_8UC1
,
0xb6a16bd3
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2BGRA_NV12
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2BGRA_NV12
,
CV_8UC1
,
0xa8436bd3
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2RGBA_NV21
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2RGBA_NV21
,
CV_8UC1
,
0x1c7fa347
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2BGRA_NV21
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2BGRA_NV21
,
CV_8UC1
,
0x96f7a347
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2RGB_YV12
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2RGB_YV12
,
CV_8UC1
,
0xc5da1651
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2BGR_YV12
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2BGR_YV12
,
CV_8UC1
,
0x12161651
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2RGB_IYUV
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2RGB_IYUV
,
CV_8UC1
,
0xb4e62ea5
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2BGR_IYUV
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2BGR_IYUV
,
CV_8UC1
,
0xfa632ea5
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2RGBA_YV12
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2RGBA_YV12
,
CV_8UC1
,
0x0db4c69f
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2BGRA_YV12
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2BGRA_YV12
,
CV_8UC1
,
0x59e1c69f
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2RGBA_IYUV
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2RGBA_IYUV
,
CV_8UC1
,
0xfe09def3
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2BGRA_IYUV
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2BGRA_IYUV
,
CV_8UC1
,
0x4395def3
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2GRAY_420
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2GRAY_420
,
CV_8UC1
,
0xf672b440
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2RGB_UYVY
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2RGB_UYVY
,
CV_8UC2
,
0x69bea2c1
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2BGR_UYVY
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2BGR_UYVY
,
CV_8UC2
,
0xdc51a2c1
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2RGBA_UYVY
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2RGBA_UYVY
,
CV_8UC2
,
0x851eab45
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2BGRA_UYVY
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2BGRA_UYVY
,
CV_8UC2
,
0xf7b1ab45
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2RGB_YUY2
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2RGB_YUY2
,
CV_8UC2
,
0x607e8889
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2BGR_YUY2
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2BGR_YUY2
,
CV_8UC2
,
0xfb148889
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2RGB_YVYU
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2RGB_YVYU
,
CV_8UC2
,
0x239b13d4
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2BGR_YVYU
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2BGR_YVYU
,
CV_8UC2
,
0x402b13d4
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2RGBA_YUY2
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2RGBA_YUY2
,
CV_8UC2
,
0xf6af910d
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2BGRA_YUY2
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2BGRA_YUY2
,
CV_8UC2
,
0x9154910d
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2RGBA_YVYU
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2RGBA_YVYU
,
CV_8UC2
,
0x14481c58
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2BGRA_YVYU
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2BGRA_YVYU
,
CV_8UC2
,
0x30d81c58
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2GRAY_UYVY
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2GRAY_UYVY
,
CV_8UC2
,
0x228e669c
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_YUV2GRAY_YUY2
)
{
runCvtColorBitExactCheck
(
COLOR_YUV2GRAY_YUY2
,
CV_8UC2
,
0x125c62fd
,
Size
(
262
,
510
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_RGB2YUV_I420
)
{
runCvtColorBitExactCheck
(
COLOR_RGB2YUV_I420
,
CV_8UC3
,
0x44bb076a
,
Size
(
262
,
254
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_BGR2YUV_I420
)
{
runCvtColorBitExactCheck
(
COLOR_BGR2YUV_I420
,
CV_8UC3
,
0xf908ff52
,
Size
(
262
,
254
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_RGBA2YUV_I420
)
{
runCvtColorBitExactCheck
(
COLOR_RGBA2YUV_I420
,
CV_8UC3
,
0x44bb076a
,
Size
(
262
,
254
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_BGRA2YUV_I420
)
{
runCvtColorBitExactCheck
(
COLOR_BGRA2YUV_I420
,
CV_8UC3
,
0xf908ff52
,
Size
(
262
,
254
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_RGB2YUV_YV12
)
{
runCvtColorBitExactCheck
(
COLOR_RGB2YUV_YV12
,
CV_8UC3
,
0x1b0d076a
,
Size
(
262
,
254
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_BGR2YUV_YV12
)
{
runCvtColorBitExactCheck
(
COLOR_BGR2YUV_YV12
,
CV_8UC3
,
0xda8aff52
,
Size
(
262
,
254
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_RGBA2YUV_YV12
)
{
runCvtColorBitExactCheck
(
COLOR_RGBA2YUV_YV12
,
CV_8UC3
,
0x1b0d076a
,
Size
(
262
,
254
));
}
TEST
(
Imgproc_cvtColor_BE
,
COLOR_BGRA2YUV_YV12
)
{
runCvtColorBitExactCheck
(
COLOR_BGRA2YUV_YV12
,
CV_8UC3
,
0xda8aff52
,
Size
(
262
,
254
));
}
static
void
test_Bayer2RGB_EdgeAware_8u
(
const
Mat
&
src
,
Mat
&
dst
,
int
code
)
static
void
test_Bayer2RGB_EdgeAware_8u
(
const
Mat
&
src
,
Mat
&
dst
,
int
code
)
{
{
if
(
dst
.
empty
())
if
(
dst
.
empty
())
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录