- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中org.openimaj.video.xuggle.XuggleVideo
类的一些代码示例,展示了XuggleVideo
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XuggleVideo
类的具体详情如下:
包路径:org.openimaj.video.xuggle.XuggleVideo
类名称:XuggleVideo
[英]Wraps a Xuggle video reader into the OpenIMAJ Video interface.
Some Notes:
The #hasNextFrame() method must attempt to read the next packet in the stream to determine if there is a next frame. That means that it incurs a time penalty. It also means there's various logic in that method and the #getNextFrame() method to avoid reading frames that have already been read. It also means that, to avoid #getCurrentFrame() incorrectly returning a new frame after #hasNextFrame() has been called, the class may be holding two frames (the current frame and the next frame) after #hasNextFrame() has been called.
The constructors have signatures that allow the passing of a boolean that determines whether the video is looped or not. This has a different effect than looping using the VideoDisplay. When the video is set to loop it will loop indefinitely and the timestamp of frames will be consecutive. That is, when the video loops the timestamps will continue to increase. This is in contrast to setting the VideoDisplay end action (using VideoDisplay#setEndAction(org.openimaj.video.VideoDisplay.EndAction)where the looping will reset all timestamps when the video loops.
[中]将Xuggle视频阅读器包装到OpenIMAJ视频接口中。
注意:
#hasNextFrame()方法必须尝试读取流中的下一个数据包,以确定是否存在下一个帧。这意味着它会受到时间惩罚。这还意味着该方法和#getNextFrame()方法中有各种逻辑,可以避免读取已经读取的帧。这还意味着,为了避免在调用#hasNextFrame()后#getCurrentFrame()错误地返回新帧,该类可能在调用#hasNextFrame()后保留两个帧(当前帧和下一帧)。
构造函数具有允许传递布尔值的签名,该布尔值决定视频是否循环。这与使用VideoDisplay循环的效果不同。当视频设置为循环时,它将无限循环,帧的时间戳将是连续的。也就是说,当视频循环时,时间戳将继续增加。这与设置VideoDisplay结束操作(使用VideoDisplay#setEndAction(org.openimaj.video.VideoDisplay.EndAction))形成对比,在该操作中,当视频循环时,循环将重置所有时间戳。
代码示例来源:origin: openimaj/openimaj
MultiTouchSurface(){
String sourceURL = "http://152.78.64.19:8080/foo";
stream = new XuggleVideo(sourceURL);
}
代码示例来源:origin: openimaj/openimaj
@Override
public void precalc()
{
this.videoLength = 1000d * video.countFrames() / video.getFPS();
}
代码示例来源:origin: org.openimaj/data-scraping
@Override
public int getHeight() {
return vid.getHeight();
}
代码示例来源:origin: openimaj/openimaj
/**
* Implements a precise seeking mechanism based on the Xuggle seek method
* and the naive seek method which simply reads frames.
* <p>
* Note: if you created the video from a {@link DataInput} or
* {@link InputStream}, you can only seek forwards.
*
* @param timestamp
* The timestamp to get, in seconds.
*/
public void seekPrecise(double timestamp) {
// Use the Xuggle seek method first to get near the frame
this.seek(timestamp);
// The timestamp field is in milliseconds, so we need to * 1000 to
// compare
timestamp *= 1000;
// Work out the number of milliseconds per frame
final double timePerFrame = 1000d / this.fps;
// If we're not in the right place, keep reading until we are.
// Note the right place is the frame before the timestamp we're given:
// |---frame 1---|---frame2---|---frame3---|
// ^- given timestamp
// ... so we should show frame2 not frame3.
while (this.timestamp <= timestamp - timePerFrame && this.getNextFrame() != null)
;
}
代码示例来源:origin: openimaj/openimaj
@Override
public void render(final MBFImageRenderer renderer, final Matrix transform, final Rectangle rectangle) {
if (this.toRender == null) {
this.toRender = new XuggleVideo(
VideoColourSIFT.class.getResource("/org/openimaj/demos/video/keyboardcat.flv"), true);
this.renderToBounds = TransformUtilities.makeTransform(new Rectangle(0, 0, this.toRender.getWidth(),
this.toRender.getHeight()), rectangle);
}
final MBFProjectionProcessor mbfPP = new MBFProjectionProcessor();
mbfPP.setMatrix(transform.times(this.renderToBounds));
mbfPP.accumulate(this.toRender.getNextFrame());
mbfPP.performProjection(0, 0, renderer.getImage());
}
};
代码示例来源:origin: org.openimaj/FaceTools
System.out.println( " - Size: "+video.getWidth()+"x"+video.getHeight() );
System.out.println( " - Frame Rate: "+video.getFPS() );
System.out.println( "Detecting shots in video..." );
this.video.reset();
video.setCurrentFrameIndex(mframe);
faceFrame = video.getCurrentFrame();
doneSearching = true;
pframe += options.seconds * video.getFPS();
video.setCurrentFrameIndex( pframe );
faceFrame = video.getCurrentFrame();
video.getCurrentTimecode()+" ("+video.getTimeStamp()+")" );
IndependentPair<VideoTimecode, VideoTimecode> timecodes =
otf.trackObject( new BasicMBFImageObjectTracker(), video,
video.getCurrentTimecode(), f.getBounds(),
new TimeFinderListener<Rectangle,MBFImage>()
代码示例来源:origin: openimaj/openimaj
public VideoWithinVideo(String videoPath) throws IOException {
this.videoFile = new File(videoPath);
this.video = new XuggleVideo(videoFile, true);
this.capture = new VideoCapture(320, 240);
nextCaptureFrame = capture.getNextFrame().clone();
this.videoRect = new Rectangle(0, 0, video.getWidth(), video.getHeight());
this.captureToVideo = TransformUtilities.makeTransform(
new Rectangle(0, 0, capture.getWidth(), capture.getHeight()),
videoRect
);
display = VideoDisplay.createVideoDisplay(video);
new CaptureVideoSIFT(this);
display.addVideoListener(this);
// targetArea = new Polygon(
// new Point2dImpl(100,100),
// new Point2dImpl(200,150),
// new Point2dImpl(200,230),
// new Point2dImpl(0,200)
// );
//
// Prepare the homography matrix
pointList = new ArrayList<IndependentPair<Point2d, Point2d>>();
pointList.add(IndependentPair.pair((Point2d) topLeftB, (Point2d) topLeftS));
pointList.add(IndependentPair.pair((Point2d) topRightB, (Point2d) topRightS));
pointList.add(IndependentPair.pair((Point2d) bottomRightB, (Point2d) bottomRightS));
pointList.add(IndependentPair.pair((Point2d) bottomLeftB, (Point2d) bottomLeftS));
}
代码示例来源:origin: openimaj/openimaj
final XuggleVideo v = new XuggleVideo( new File( filename ) );
final double fps = v.getFPS();
代码示例来源:origin: openimaj/openimaj
video = new XuggleVideo(url);
video.setCurrentFrameIndex( 10 );
代码示例来源:origin: openimaj/openimaj
@Override
public void init(XuggleVideo video){
this.framesToSkip = (int) (video.getFPS() / this.framesPerSecond);
if(this.framesToSkip < 1) this.framesToSkip = 1;
this.framesCount = 0;
}
代码示例来源:origin: org.openimaj/xuggle-video
return;
this.create(url);
this.getNextFrame();
else
logger.error("Seek returned an error value: " + ret + ": "
代码示例来源:origin: org.openimaj/xuggle-video
/**
* {@inheritDoc}
*
* @see org.openimaj.video.Video#getCurrentFrame()
*/
@Override
public MBFImage getCurrentFrame() {
if (this.currentMBFImage == null)
this.currentMBFImage = this.getNextFrame();
return this.currentMBFImage;
}
代码示例来源:origin: openimaj/openimaj
@Override
public int getWidth() {
return vid.getWidth();
}
代码示例来源:origin: openimaj/openimaj
@Override
public long countFrames() {
return vid.countFrames();
}
代码示例来源:origin: openimaj/openimaj
@Override
public MBFImage getCurrentFrame() {
return vid.getCurrentFrame();
}
代码示例来源:origin: openimaj/openimaj
@Override
public void reset() {
vid.reset();
}
代码示例来源:origin: openimaj/openimaj
@Override
public long getTimeStamp() {
return vid.getTimeStamp();
}
代码示例来源:origin: org.openimaj/demos
@Override
public void render(final MBFImageRenderer renderer, final Matrix transform, final Rectangle rectangle) {
if (this.toRender == null) {
this.toRender = new XuggleVideo(
VideoSIFT.class.getResource("/org/openimaj/demos/video/keyboardcat.flv"), true);
this.renderToBounds = TransformUtilities.makeTransform(new Rectangle(0, 0, this.toRender.getWidth(),
this.toRender.getHeight()), rectangle);
}
final MBFProjectionProcessor mbfPP = new MBFProjectionProcessor();
mbfPP.setMatrix(transform.times(this.renderToBounds));
mbfPP.accumulate(this.toRender.getNextFrame());
mbfPP.performProjection(0, 0, renderer.getImage());
}
};
代码示例来源:origin: openimaj/openimaj
System.out.println( " - Size: "+video.getWidth()+"x"+video.getHeight() );
System.out.println( " - Frame Rate: "+video.getFPS() );
System.out.println( "Detecting shots in video..." );
this.video.reset();
video.setCurrentFrameIndex(mframe);
faceFrame = video.getCurrentFrame();
doneSearching = true;
pframe += options.seconds * video.getFPS();
video.setCurrentFrameIndex( pframe );
faceFrame = video.getCurrentFrame();
video.getCurrentTimecode()+" ("+video.getTimeStamp()+")" );
IndependentPair<VideoTimecode, VideoTimecode> timecodes =
otf.trackObject( new BasicMBFImageObjectTracker(), video,
video.getCurrentTimecode(), f.getBounds(),
new TimeFinderListener<Rectangle,MBFImage>()
代码示例来源:origin: org.openimaj/sandbox
public VideoWithinVideo(String videoPath) throws IOException {
this.videoFile = new File(videoPath);
this.video = new XuggleVideo(videoFile, true);
this.capture = new VideoCapture(320, 240);
nextCaptureFrame = capture.getNextFrame().clone();
this.videoRect = new Rectangle(0, 0, video.getWidth(), video.getHeight());
this.captureToVideo = TransformUtilities.makeTransform(
new Rectangle(0, 0, capture.getWidth(), capture.getHeight()),
videoRect
);
display = VideoDisplay.createVideoDisplay(video);
new CaptureVideoSIFT(this);
display.addVideoListener(this);
// targetArea = new Polygon(
// new Point2dImpl(100,100),
// new Point2dImpl(200,150),
// new Point2dImpl(200,230),
// new Point2dImpl(0,200)
// );
//
// Prepare the homography matrix
pointList = new ArrayList<IndependentPair<Point2d, Point2d>>();
pointList.add(IndependentPair.pair((Point2d) topLeftB, (Point2d) topLeftS));
pointList.add(IndependentPair.pair((Point2d) topRightB, (Point2d) topRightS));
pointList.add(IndependentPair.pair((Point2d) bottomRightB, (Point2d) bottomRightS));
pointList.add(IndependentPair.pair((Point2d) bottomLeftB, (Point2d) bottomLeftS));
}
Schema.org、Goodrelations-vocabulary.org 和 Productontology.org 之间有什么关系? Schema.org 告知,“W3C schema.org
大家好,我想知道包 org.ietf、org.omg、org.w3c 和 org 是如何实现的.xml 已进入 "official" Java classes ? 例如,默认 JDK 不会包含 Apa
首先,我试图用来自 Schema.org 的属性定义数据库表,例如,例如,我有一个名为“JobPosting”的表,它或多或少具有与 http://schema.org/JobPosting 中定义的
我有一个 org.w3c.dom.Document 被 org.dom4j.io.DOMReader 解析。 我想通过 org.w3c.dom.Element 搜索 dom4j DOM 文档。 比方说
我正在将我的应用程序部署到 Tomcat 6.0.20。 应用程序使用 Hibernate 作为 Web 层的 ORM、Spring 和 JSF。 我还从 main() 方法制作了简单的运行器来测试
我有一个使用 hibernate > 4 的 gradle 项目。如果我在 Apache tomcat 中运行我的 war 文件,我不会收到任何错误。但是当我在 Wildfly 8.2 中部署它时,出
我正在尝试将 JaCoCo 添加到我的 Android 以覆盖 Sonar Qube。但是在运行命令 ./gradlew jacocoTestReport 时,我收到以下错误。 Task :app:
如何在 emacs 组织模式中格式化日期? 例如,在下表中,我希望日期显示为“Aug 29”或“Wed, Aug 29”而不是“” #+ATTR_HTML: border="2" rules="all
我想使用 org 模式来写一本技术书籍。我正在寻找一种将外部文件中的现有代码插入到 babel 代码块中的方法,该代码块在导出为 pdf 时会提供很好的格式。 例如 #+BEGIN_SRC pytho
用作引用:https://support.google.com/webmasters/answer/146750?hl=en 您会注意到在“产品”下有一个属性类别,此外页面下方还有一个示例: Too
我读了这个Google doc .它说我们不使用列表中的产品。 那么对于产品列表(具有多页的类似产品的类别,如“鞋子”),推荐使用哪种模式? 我用这个: { "@context": "htt
我目前在做DBpedia数据集,想通过wikidata实现schema.org和DBpedia的映射。因此我想知道 schema.org 和 wikidata 之间是否存在任何映射。 最佳答案 我认为
我爱org-tables ,我用它们来记录各种事情。我现在正在为 Nix 记录一些单行代码(在阅读了 Domen Kožar 的 excellent guide 后,在 this year's Eur
如果看一下 Movie在 schema.org 中输入,actor 和 actors 属性都是允许的(actor 取代 actors)。但是 author 和 contributor 属性没有等效项。
我们有一些餐厅有多个地点或分支机构。我想包含正确的 Schema.org 标记,但找不到任何允许列出多个餐厅的内容。 每家餐厅都有自己的地址、电子邮件、电话和营业时间,甚至可能是“分店名称”。 两个分
我在一个页面中有多个综合评分片段。 有没有办法让其中之一成为默认值?将显示在搜索引擎结果中的那个? 谢谢大家! 更新:该网页本质上是品牌的页面。它包含品牌评论的总评分及其产品列表(每个产品的总评分)。
我提到了一些相关的职位,但并没有解决我的问题。因为我正在使用maven-jar-plugin-2.4 jar。 我正在使用JBoss Developer Studio 7.1.1 GA IDE,并且正
网站的根页面(即 http://example.com/ )的特殊之处在于它是默认的着陆页。它可能包含许多不同的对象类型。 它可能被认为是一个网站,或者一个博客等... 但它是否也应该被标记为给定对象
我想将一些文本放入一个 org 文件中,当我将内容导出到其中一种目标类型(在本例中为 HTML)时,该文件不会发布。有什么方法可以实现这个目标吗? 最佳答案 您可能想要使用 :noexport: 标签
org-mode 是否有一个键绑定(bind)可以在编号/项目符号列表项之间移动,就像您可以对标题一样? 喜欢的功能: org-forward-heading-same-level 大纲下一个可见标题
我是一名优秀的程序员,十分优秀!