Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
d3aa808b
O
Opencv
项目概览
Greenplum
/
Opencv
11 个月 前同步成功
通知
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,发现更多精彩内容 >>
提交
d3aa808b
编写于
11月 25, 2010
作者:
E
Ethan Rublee
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
renaming cvstarter and breaking it appart
上级
334ac49d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
0 addition
and
106 deletion
+0
-106
samples/cpp/cvstarter.cpp
samples/cpp/cvstarter.cpp
+0
-106
未找到文件。
samples/cpp/cvstarter.cpp
已删除
100644 → 0
浏览文件 @
334ac49d
/*
* cvstarter.cpp
*
* Created on: Nov 23, 2010
* Author: Ethan Rublee
*
* A starter sample for using opencv, load up a list or get a video stream
* easy as CV_PI right?
*/
#include <opencv2/opencv.hpp>
#include <vector>
using
namespace
cv
;
using
namespace
std
;
//hide the local functions in an anon namespace
namespace
{
void
help
(
char
**
av
)
{
cout
<<
"usage:"
<<
av
[
0
]
<<
" image_list.yaml
\n
"
<<
"
\t
This is a starter sample, to get you up and going in a copy pasta fashion
\n
"
<<
"
\t
Try running imagelist_creator to generate a list of images
\n
"
<<
"
\t
Or try running this with an integer arg like:
\n\n
"
<<
av
[
0
]
<<
" 0
\n
"
<<
"
\t
This will open up the video device."
<<
endl
;
}
bool
readStringList
(
const
string
&
filename
,
vector
<
string
>&
l
)
{
l
.
resize
(
0
);
FileStorage
fs
(
filename
,
FileStorage
::
READ
);
if
(
!
fs
.
isOpened
())
return
false
;
FileNode
n
=
fs
.
getFirstTopLevelNode
();
if
(
n
.
type
()
!=
FileNode
::
SEQ
)
return
false
;
FileNodeIterator
it
=
n
.
begin
(),
it_end
=
n
.
end
();
for
(;
it
!=
it_end
;
++
it
)
l
.
push_back
((
string
)
*
it
);
return
true
;
}
int
videoProcess
(
VideoCapture
&
capture
)
{
namedWindow
(
"video"
,
CV_WINDOW_KEEPRATIO
);
//resizable window;
Mat
frame
;
for
(;;)
{
capture
>>
frame
;
if
(
frame
.
empty
())
continue
;
imshow
(
"video"
,
frame
);
char
key
=
waitKey
(
5
);
//delay N millis, usually long enough to display and capture input
switch
(
key
)
{
case
'q'
:
case
'Q'
:
case
27
:
//escape key
return
0
;
default:
break
;
}
}
return
0
;
}
int
imageListProcess
(
vector
<
string
>
images
)
{
namedWindow
(
"image"
,
CV_WINDOW_KEEPRATIO
);
//resizable window;
for
(
size_t
i
=
0
;
i
<
images
.
size
();
i
++
)
{
Mat
image
=
imread
(
images
[
i
],
CV_LOAD_IMAGE_GRAYSCALE
);
// do grayscale processing?
imshow
(
"image"
,
image
);
cout
<<
"Press a key to see the next image in the list."
<<
endl
;
waitKey
();
// wait indefinitely
}
return
0
;
}
}
int
main
(
int
ac
,
char
**
av
)
{
if
(
ac
!=
2
)
{
help
(
av
);
return
1
;
}
std
::
string
arg
=
av
[
1
];
vector
<
string
>
imagelist
;
if
(
!
readStringList
(
arg
,
imagelist
))
{
int
ad
=
atoi
(
arg
.
c_str
());
VideoCapture
capture
(
ad
);
return
videoProcess
(
capture
);
}
else
{
return
imageListProcess
(
imagelist
);
}
return
0
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录