From 7480497ce9a83693ff0d03561c06570a3563ad9b Mon Sep 17 00:00:00 2001 From: Scott Klum Date: Mon, 28 Mar 2016 10:35:26 -0400 Subject: [PATCH] Renamed video format file --- openbr/plugins/format/video.cpp | 163 ------------------------------------------------------------------------------------------------------------------------------------------------------------------- openbr/plugins/format/videoFormats.cpp | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+), 163 deletions(-) delete mode 100644 openbr/plugins/format/video.cpp create mode 100644 openbr/plugins/format/videoFormats.cpp diff --git a/openbr/plugins/format/video.cpp b/openbr/plugins/format/video.cpp deleted file mode 100644 index fdf659d..0000000 --- a/openbr/plugins/format/video.cpp +++ /dev/null @@ -1,163 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright 2012 The MITRE Corporation * - * * - * Licensed under the Apache License, Version 2.0 (the "License"); * - * you may not use this file except in compliance with the License. * - * You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, software * - * distributed under the License is distributed on an "AS IS" BASIS, * - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * - * See the License for the specific language governing permissions and * - * limitations under the License. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -#include - -#include -#include -#include - -using namespace cv; - -namespace br -{ - -/*! - * \ingroup formats - * \brief Read all frames of a video using OpenCV - * \author Charles Otto \cite caotto - */ -class videoFormat : public Format -{ - Q_OBJECT - -public: - Template read() const - { - if (!file.exists() ) - return Template(); - - VideoCapture videoSource(file.name.toStdString()); - videoSource.open(file.name.toStdString() ); - - - Template frames; - if (!videoSource.isOpened()) { - qWarning("video file open failed"); - return frames; - } - - bool open = true; - while (open) { - cv::Mat frame; - open = videoSource.read(frame); - if (!open) break; - - frames.append(cv::Mat()); - frames.back() = frame.clone(); - } - - return frames; - } - - void write(const Template &t) const - { - int fourcc = OpenCVUtils::getFourcc(); - VideoWriter videoSink(file.name.toStdString(), fourcc, 30, t.begin()->size()); - - // Did we successfully open the output file? - if (!videoSink.isOpened() ) qFatal("Failed to open output file"); - - for (Template::const_iterator it = t.begin(); it!= t.end(); ++it) { - videoSink << *it; - } - } -}; - -BR_REGISTER(Format, videoFormat) - -/*! - * \ingroup formats - * \brief Retrieves an image from a webcam. - * \author Josh Klontz \cite jklontz - */ -class webcamFormat : public Format -{ - Q_OBJECT - - Template read() const - { - static QScopedPointer videoCapture; - - if (videoCapture.isNull()) - videoCapture.reset(new VideoCapture(0)); - - Mat m; - videoCapture->read(m); - return Template(m); - } - - void write(const Template &t) const - { - (void) t; - qFatal("Not supported."); - } -}; - -BR_REGISTER(Format, webcamFormat) - -/*! - * \ingroup formats - * \brief Reads image files. - * \author Josh Klontz \cite jklontz - */ -class DefaultFormat : public Format -{ - Q_OBJECT - - Template read() const - { - Template t; - - if (file.name.startsWith("http://") || file.name.startsWith("https://") || file.name.startsWith("www.")) { - if (Factory::names().contains("url")) { - File urlFile = file; - urlFile.name.append(".url"); - QScopedPointer url(Factory::make(urlFile)); - t = url->read(); - } - } else { - Mat m = imread(file.resolved().toStdString()); - if (m.data) { - t.append(m); - } else { - videoFormat videoReader; - videoReader.file = file; - t = videoReader.read(); - } - } - - return t; - } - - void write(const Template &t) const - { - if (t.size() > 1) { - videoFormat videoWriter; - videoWriter.file = file; - videoWriter.write(t); - } else if (t.size() == 1) { - QtUtils::touchDir(QDir(file.path())); - imwrite(file.name.toStdString(), t); - } - } -}; - -BR_REGISTER(Format, DefaultFormat) - -} // namespace br - -#include "format/video.moc" diff --git a/openbr/plugins/format/videoFormats.cpp b/openbr/plugins/format/videoFormats.cpp new file mode 100644 index 0000000..0498e40 --- /dev/null +++ b/openbr/plugins/format/videoFormats.cpp @@ -0,0 +1,163 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright 2012 The MITRE Corporation * + * * + * Licensed under the Apache License, Version 2.0 (the "License"); * + * you may not use this file except in compliance with the License. * + * You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, software * + * distributed under the License is distributed on an "AS IS" BASIS, * + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * + * See the License for the specific language governing permissions and * + * limitations under the License. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#include + +#include +#include +#include + +using namespace cv; + +namespace br +{ + +/*! + * \ingroup formats + * \brief Read all frames of a video using OpenCV + * \author Charles Otto \cite caotto + */ +class videoFormat : public Format +{ + Q_OBJECT + +public: + Template read() const + { + if (!file.exists() ) + return Template(); + + VideoCapture videoSource(file.name.toStdString()); + videoSource.open(file.name.toStdString() ); + + + Template frames; + if (!videoSource.isOpened()) { + qWarning("video file open failed"); + return frames; + } + + bool open = true; + while (open) { + cv::Mat frame; + open = videoSource.read(frame); + if (!open) break; + + frames.append(cv::Mat()); + frames.back() = frame.clone(); + } + + return frames; + } + + void write(const Template &t) const + { + int fourcc = OpenCVUtils::getFourcc(); + VideoWriter videoSink(file.name.toStdString(), fourcc, 30, t.begin()->size()); + + // Did we successfully open the output file? + if (!videoSink.isOpened() ) qFatal("Failed to open output file"); + + for (Template::const_iterator it = t.begin(); it!= t.end(); ++it) { + videoSink << *it; + } + } +}; + +BR_REGISTER(Format, videoFormat) + +/*! + * \ingroup formats + * \brief Retrieves an image from a webcam. + * \author Josh Klontz \cite jklontz + */ +class webcamFormat : public Format +{ + Q_OBJECT + + Template read() const + { + static QScopedPointer videoCapture; + + if (videoCapture.isNull()) + videoCapture.reset(new VideoCapture(0)); + + Mat m; + videoCapture->read(m); + return Template(m); + } + + void write(const Template &t) const + { + (void) t; + qFatal("Not supported."); + } +}; + +BR_REGISTER(Format, webcamFormat) + +/*! + * \ingroup formats + * \brief Reads image files. + * \author Josh Klontz \cite jklontz + */ +class DefaultFormat : public Format +{ + Q_OBJECT + + Template read() const + { + Template t; + + if (file.name.startsWith("http://") || file.name.startsWith("https://") || file.name.startsWith("www.")) { + if (Factory::names().contains("url")) { + File urlFile = file; + urlFile.name.append(".url"); + QScopedPointer url(Factory::make(urlFile)); + t = url->read(); + } + } else { + Mat m = imread(file.resolved().toStdString()); + if (m.data) { + t.append(m); + } else { + videoFormat videoReader; + videoReader.file = file; + t = videoReader.read(); + } + } + + return t; + } + + void write(const Template &t) const + { + if (t.size() > 1) { + videoFormat videoWriter; + videoWriter.file = file; + videoWriter.write(t); + } else if (t.size() == 1) { + QtUtils::touchDir(QDir(file.path())); + imwrite(file.name.toStdString(), t); + } + } +}; + +BR_REGISTER(Format, DefaultFormat) + +} // namespace br + +#include "format/videoFormats.moc" -- libgit2 0.21.4