Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
6ca697bc
O
Opencv
项目概览
Greenplum
/
Opencv
10 个月 前同步成功
通知
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,体验更适合开发者的 AI 搜索 >>
未验证
提交
6ca697bc
编写于
6月 10, 2023
作者:
A
Alexander Smorkalov
提交者:
GitHub
6月 10, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #23725 from asmorkalov:as/aruco_js_refresh
Refreshed JavaScript bindings for Aruco related algorithms
上级
fe14e7ab
61488885
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
74 addition
and
9 deletion
+74
-9
modules/js/generator/embindgen.py
modules/js/generator/embindgen.py
+1
-0
modules/js/src/core_bindings.cpp
modules/js/src/core_bindings.cpp
+2
-4
modules/js/test/test_objdetect.js
modules/js/test/test_objdetect.js
+57
-1
platforms/js/opencv_js.config.py
platforms/js/opencv_js.config.py
+14
-4
未找到文件。
modules/js/generator/embindgen.py
浏览文件 @
6ca697bc
...
@@ -812,6 +812,7 @@ class JSWrapperGenerator(object):
...
@@ -812,6 +812,7 @@ class JSWrapperGenerator(object):
for
name
,
class_info
in
sorted
(
self
.
classes
.
items
()):
for
name
,
class_info
in
sorted
(
self
.
classes
.
items
()):
class_bindings
=
[]
class_bindings
=
[]
if
not
name
in
white_list
:
if
not
name
in
white_list
:
#print('Not in whitelist: "{}" from ns={}'.format(name, ns_name))
continue
continue
# Generate bindings for methods
# Generate bindings for methods
...
...
modules/js/src/core_bindings.cpp
浏览文件 @
6ca697bc
...
@@ -89,14 +89,12 @@ using namespace cv;
...
@@ -89,14 +89,12 @@ using namespace cv;
using
namespace
cv
::
segmentation
;
// FIXIT
using
namespace
cv
::
segmentation
;
// FIXIT
using
namespace
cv
::
aruco
;
#ifdef HAVE_OPENCV_DNN
#ifdef HAVE_OPENCV_DNN
using
namespace
cv
::
dnn
;
using
namespace
cv
::
dnn
;
#endif
#endif
#ifdef HAVE_OPENCV_ARUCO
using
namespace
aruco
;
#endif
#ifdef HAVE_OPENCV_VIDEO
#ifdef HAVE_OPENCV_VIDEO
typedef
TrackerMIL
::
Params
TrackerMIL_Params
;
typedef
TrackerMIL
::
Params
TrackerMIL_Params
;
#endif
#endif
...
...
modules/js/test/test_objdetect.js
浏览文件 @
6ca697bc
...
@@ -199,4 +199,60 @@ QUnit.test('QR code detect and decode', function (assert) {
...
@@ -199,4 +199,60 @@ QUnit.test('QR code detect and decode', function (assert) {
mat
.
delete
();
mat
.
delete
();
}
}
});
});
\ No newline at end of file
QUnit
.
test
(
'
Aruco detector
'
,
function
(
assert
)
{
{
let
dictionary
=
cv
.
getPredefinedDictionary
(
cv
.
DICT_4X4_50
);
let
aruco_image
=
new
cv
.
Mat
();
let
detectorParameters
=
new
cv
.
aruco_DetectorParameters
();
let
refineParameters
=
new
cv
.
aruco_RefineParameters
(
10
,
3
,
true
);
let
detector
=
new
cv
.
aruco_ArucoDetector
(
dictionary
,
detectorParameters
,
refineParameters
);
let
corners
=
new
cv
.
MatVector
();
let
ids
=
new
cv
.
Mat
();
dictionary
.
generateImageMarker
(
10
,
128
,
aruco_image
);
assert
.
ok
(
!
aruco_image
.
empty
());
detector
.
detectMarkers
(
aruco_image
,
corners
,
ids
);
dictionary
.
delete
();
aruco_image
.
delete
();
detectorParameters
.
delete
();
refineParameters
.
delete
();
detector
.
delete
();
corners
.
delete
();
ids
.
delete
();
}
});
QUnit
.
test
(
'
Charuco detector
'
,
function
(
assert
)
{
{
let
dictionary
=
new
cv
.
getPredefinedDictionary
(
cv
.
DICT_4X4_50
);
let
boardIds
=
new
cv
.
Mat
();
let
board
=
new
cv
.
aruco_CharucoBoard
(
new
cv
.
Size
(
3
,
5
),
64
,
32
,
dictionary
,
boardIds
);
let
charucoParameters
=
new
cv
.
aruco_CharucoParameters
();
let
detectorParameters
=
new
cv
.
aruco_DetectorParameters
();
let
refineParameters
=
new
cv
.
aruco_RefineParameters
(
10
,
3
,
true
);
let
detector
=
new
cv
.
aruco_CharucoDetector
(
board
,
charucoParameters
,
detectorParameters
,
refineParameters
);
let
board_image
=
new
cv
.
Mat
();
let
corners
=
new
cv
.
Mat
();
let
ids
=
new
cv
.
Mat
();
board
.
generateImage
(
new
cv
.
Size
(
300
,
500
),
board_image
);
assert
.
ok
(
!
board_image
.
empty
());
detector
.
detectBoard
(
board_image
,
corners
,
ids
);
assert
.
ok
(
!
corners
.
empty
());
assert
.
ok
(
!
ids
.
empty
());
dictionary
.
delete
();
boardIds
.
delete
();
board
.
delete
();
board_image
.
delete
();
charucoParameters
.
delete
();
detectorParameters
.
delete
();
refineParameters
.
delete
();
detector
.
delete
();
corners
.
delete
();
ids
.
delete
();
}
});
platforms/js/opencv_js.config.py
浏览文件 @
6ca697bc
...
@@ -108,13 +108,23 @@ imgproc = {
...
@@ -108,13 +108,23 @@ imgproc = {
],
],
}
}
objdetect
=
{
''
:
[
'groupRectangles'
],
objdetect
=
{
''
:
[
'groupRectangles'
,
'getPredefinedDictionary'
,
'extendDictionary'
,
'drawDetectedMarkers'
,
'generateImageMarker'
,
'drawDetectedCornersCharuco'
,
'drawDetectedDiamonds'
],
'HOGDescriptor'
:
[
'load'
,
'HOGDescriptor'
,
'getDefaultPeopleDetector'
,
'getDaimlerPeopleDetector'
,
'setSVMDetector'
,
'detectMultiScale'
],
'HOGDescriptor'
:
[
'load'
,
'HOGDescriptor'
,
'getDefaultPeopleDetector'
,
'getDaimlerPeopleDetector'
,
'setSVMDetector'
,
'detectMultiScale'
],
'CascadeClassifier'
:
[
'load'
,
'detectMultiScale2'
,
'CascadeClassifier'
,
'detectMultiScale3'
,
'empty'
,
'detectMultiScale'
],
'CascadeClassifier'
:
[
'load'
,
'detectMultiScale2'
,
'CascadeClassifier'
,
'detectMultiScale3'
,
'empty'
,
'detectMultiScale'
],
'QRCodeDetector'
:
[
'QRCodeDetector'
,
'decode'
,
'decodeCurved'
,
'detect'
,
'detectAndDecode'
,
'detectMulti'
,
'setEpsX'
,
'setEpsY'
],
'QRCodeDetector'
:
[
'QRCodeDetector'
,
'decode'
,
'decodeCurved'
,
'detect'
,
'detectAndDecode'
,
'detectMulti'
,
'setEpsX'
,
'setEpsY'
],
'ArucoDetector'
:
[
'getPredefinedDictionary'
,
'detectMarkers'
,
'refineDetectedMarkers'
,
'getDictionary'
,
'setDictionary'
,
'getDetectorParameters'
,
'setDetectorParameters'
,
'getRefineParameters'
,
'setRefineParameters'
],
# aruco namespace
'GridBoard'
:
[
'create'
,
'generateImage'
,
'getGridSize'
,
'getMarkerLength'
,
'getMarkerSeparation'
],
'aruco_PredefinedDictionaryType'
:
[],
'CharucoBoard'
:
[
'create'
,
'generateImage'
,
'getChessboardCorners'
,
'getNearestMarkerCorners'
,
'checkCharucoCornersCollinear'
]
'aruco_Dictionary'
:
[
'Dictionary'
,
'getDistanceToId'
,
'generateImageMarker'
,
'getByteListFromBits'
,
'getBitsFromByteList'
],
'aruco_Board'
:
[
'Board'
,
'matchImagePoints'
,
'generateImage'
],
'aruco_GridBoard'
:
[
'GridBoard'
,
'generateImage'
,
'getGridSize'
,
'getMarkerLength'
,
'getMarkerSeparation'
,
'matchImagePoints'
],
'aruco_CharucoParameters'
:
[
'CharucoParameters'
],
'aruco_CharucoBoard'
:
[
'CharucoBoard'
,
'generateImage'
,
'getChessboardCorners'
,
'getNearestMarkerCorners'
,
'checkCharucoCornersCollinear'
,
'matchImagePoints'
,
'getLegacyPattern'
,
'setLegacyPattern'
],
'aruco_DetectorParameters'
:
[
'DetectorParameters'
],
'aruco_RefineParameters'
:
[
'RefineParameters'
],
'aruco_ArucoDetector'
:
[
'ArucoDetector'
,
'detectMarkers'
,
'refineDetectedMarkers'
,
'setDictionary'
,
'setDetectorParameters'
,
'setRefineParameters'
],
'aruco_CharucoDetector'
:
[
'CharucoDetector'
,
'setBoard'
,
'setCharucoParameters'
,
'setDetectorParameters'
,
'setRefineParameters'
,
'detectBoard'
,
'detectDiamonds'
]
}
}
video
=
{
video
=
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录