diff --git a/Examples/Plugins/org.mitk.example.gui.opencv/files.cmake b/Examples/Plugins/org.mitk.example.gui.opencv/files.cmake
index 6d4570edac..47ce55d4fb 100644
--- a/Examples/Plugins/org.mitk.example.gui.opencv/files.cmake
+++ b/Examples/Plugins/org.mitk.example.gui.opencv/files.cmake
@@ -1,29 +1,35 @@
 set(SRC_CPP_FILES
 
 )
 
 set(INTERNAL_CPP_FILES
   videoplayer/QmitkVideoPlayer.cpp
+  SimpleOpenCVExample.cpp
   mitkPluginActivator.cpp
 )
 
+set(UI_FILES
+  src/internal/SimpleOpenCVExampleControls.ui
+)
+
 set(MOC_H_FILES
   src/internal/mitkPluginActivator.h
   src/internal/videoplayer/QmitkVideoPlayer.h
+  src/internal/SimpleOpenCVExample.h
 )
 
 set(CACHED_RESOURCE_FILES
   resources/videoplayer.gif
   plugin.xml
 )
 
 set(QRC_FILES
 )
 
 foreach(file ${SRC_CPP_FILES})
   set(CPP_FILES ${CPP_FILES} src/${file})
 endforeach(file ${SRC_CPP_FILES})
 
 foreach(file ${INTERNAL_CPP_FILES})
   set(CPP_FILES ${CPP_FILES} src/internal/${file})
 endforeach(file ${INTERNAL_CPP_FILES})
diff --git a/Examples/Plugins/org.mitk.example.gui.opencv/plugin.xml b/Examples/Plugins/org.mitk.example.gui.opencv/plugin.xml
index 16e9d773f5..5f1279edeb 100644
--- a/Examples/Plugins/org.mitk.example.gui.opencv/plugin.xml
+++ b/Examples/Plugins/org.mitk.example.gui.opencv/plugin.xml
@@ -1,14 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?eclipse version="3.0"?>
 <plugin>
 
   <extension point="org.blueberry.ui.views">
     <view 
       id="org.mitk.views.videoplayer" 
       name="VideoPlayer" 
       category="org.mitk.views.example" 
       icon="resources/videoplayer.gif"
       class="QmitkVideoPlayer" />
+	  <view 
+      id="org.mitk.views.simpleopencvexample" 
+      name="Simple OpenCV Example" 
+      category="org.mitk.views.example" 
+      icon="resources/videoplayer.gif"
+      class="SimpleOpenCVExample" />
   </extension>
   
 </plugin>
diff --git a/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/SimpleOpenCVExample.cpp b/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/SimpleOpenCVExample.cpp
new file mode 100644
index 0000000000..0938f1d1e4
--- /dev/null
+++ b/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/SimpleOpenCVExample.cpp
@@ -0,0 +1,90 @@
+/*===================================================================
+
+The Medical Imaging Interaction Toolkit (MITK)
+
+Copyright (c) German Cancer Research Center,
+Division of Medical and Biological Informatics.
+All rights reserved.
+
+This software is distributed WITHOUT ANY WARRANTY; without
+even the implied warranty of MERCHANTABILITY or FITNESS FOR
+A PARTICULAR PURPOSE.
+
+See LICENSE.txt or http://www.mitk.org for details.
+
+===================================================================*/
+
+
+// Blueberry
+#include <berryISelectionService.h>
+#include <berryIWorkbenchWindow.h>
+
+// Qmitk
+#include "SimpleOpenCVExample.h"
+
+// mitk image
+#include <mitkImage.h>
+
+#include "opencv2/opencv.hpp"
+
+const std::string SimpleOpenCVExample::VIEW_ID = "org.mitk.views.simpleopencvexample";
+
+void SimpleOpenCVExample::SetFocus()
+{
+}
+
+void SimpleOpenCVExample::CreateQtPartControl(QWidget *parent)
+{
+  // create GUI widgets from the Qt Designer's .ui file
+  m_Controls.setupUi(parent);
+
+  connect(m_Controls.m_StartGrabbing, SIGNAL(clicked()), this, SLOT(OnStartGrabbing()));
+}
+
+SimpleOpenCVExample::SimpleOpenCVExample() : m_running(false) {
+
+}
+
+SimpleOpenCVExample::~SimpleOpenCVExample()
+{
+  
+}
+
+void SimpleOpenCVExample::OnStartGrabbing()
+{	
+  if (!m_running)
+    {
+    m_running = true;
+    m_Controls.m_StartGrabbing->setText("Stop Video Grabbing");
+    if (m_Controls.m_SeparateWindow->isChecked())
+      {
+	      cv::VideoCapture cap = cv::VideoCapture(); // open the default camera
+        cap.open(0);
+        if (!cap.isOpened()) // check if we succeeded
+          return;
+
+        cv::namedWindow("Video", 1);
+ 
+        while (m_running)
+        {
+          cv::Mat frame;
+          cap >> frame; // get a new frame from camera
+          imshow("Video", frame);
+
+          // imwrite("C:/temp/output.jpg", frame);
+
+          // Press 'c' to escape
+          if (cv::waitKey(30) == 'c')
+            break;
+        }
+      }
+  
+  }
+    else
+    {
+      m_running = false;
+      m_Controls.m_StartGrabbing->setText("Start Video Grabbing");
+      cv::destroyWindow("Video");
+    }
+    
+}
diff --git a/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/SimpleOpenCVExample.h b/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/SimpleOpenCVExample.h
new file mode 100644
index 0000000000..8e67f64b48
--- /dev/null
+++ b/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/SimpleOpenCVExample.h
@@ -0,0 +1,56 @@
+/*===================================================================
+
+The Medical Imaging Interaction Toolkit (MITK)
+
+Copyright (c) German Cancer Research Center,
+Division of Medical and Biological Informatics.
+All rights reserved.
+
+This software is distributed WITHOUT ANY WARRANTY; without
+even the implied warranty of MERCHANTABILITY or FITNESS FOR
+A PARTICULAR PURPOSE.
+
+See LICENSE.txt or http://www.mitk.org for details.
+
+===================================================================*/
+
+
+#ifndef SimpleOpenCVExample_h
+#define SimpleOpenCVExample_h
+
+#include <berryISelectionListener.h>
+
+#include <QmitkAbstractView.h>
+
+#include "ui_SimpleOpenCVExampleControls.h"
+
+/**
+  \brief TODO
+*/
+class SimpleOpenCVExample : public QmitkAbstractView
+{
+  Q_OBJECT
+
+public:
+  static const std::string VIEW_ID;
+
+  SimpleOpenCVExample();
+
+  virtual ~SimpleOpenCVExample();
+
+protected slots:
+
+  /// \brief Called when the user clicks the GUI button
+  void OnStartGrabbing();
+
+protected:
+  virtual void CreateQtPartControl(QWidget *parent) override;
+
+  virtual void SetFocus() override;
+
+  bool m_running;
+
+  Ui::SimpleOpenCVExampleControls m_Controls;
+};
+
+#endif // SimpleOpenCVExample_h
diff --git a/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/SimpleOpenCVExampleControls.ui b/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/SimpleOpenCVExampleControls.ui
new file mode 100644
index 0000000000..8dcfd0cd6b
--- /dev/null
+++ b/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/SimpleOpenCVExampleControls.ui
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SimpleOpenCVExampleControls</class>
+ <widget class="QWidget" name="SimpleOpenCVExampleControls">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>222</width>
+    <height>287</height>
+   </rect>
+  </property>
+  <property name="minimumSize">
+   <size>
+    <width>0</width>
+    <height>0</height>
+   </size>
+  </property>
+  <property name="windowTitle">
+   <string>QmitkTemplate</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>Input ID</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QSpinBox" name="m_InputID"/>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QRadioButton" name="m_SeparateWindow">
+     <property name="text">
+      <string>Render in Separate Window</string>
+     </property>
+     <property name="checked">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QRadioButton" name="m_MITKImage">
+     <property name="text">
+      <string>Render as MITK Image</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QPushButton" name="m_StartGrabbing">
+     <property name="text">
+      <string>Start Video Grabbing</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <spacer name="spacer1">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeType">
+      <enum>QSizePolicy::Expanding</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>220</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+  </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/mitkPluginActivator.cpp b/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/mitkPluginActivator.cpp
index b3fe63e564..6ecd0a8169 100644
--- a/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/mitkPluginActivator.cpp
+++ b/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/mitkPluginActivator.cpp
@@ -1,31 +1,33 @@
 /*===================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center,
 Division of Medical and Biological Informatics.
 All rights reserved.
 
 This software is distributed WITHOUT ANY WARRANTY; without
 even the implied warranty of MERCHANTABILITY or FITNESS FOR
 A PARTICULAR PURPOSE.
 
 See LICENSE.txt or http://www.mitk.org for details.
 
 ===================================================================*/
 
 #include "mitkPluginActivator.h"
 #include "src/internal/videoplayer/QmitkVideoPlayer.h"
+#include "src/internal/SimpleOpenCVExample.h"
 #include <mitkPersistenceService.h>
 
 namespace mitk
 {
   void PluginActivator::start(ctkPluginContext *context)
   {
     mitk::PersistenceService::LoadModule();
 
     BERRY_REGISTER_EXTENSION_CLASS(QmitkVideoPlayer, context)
+	  BERRY_REGISTER_EXTENSION_CLASS(SimpleOpenCVExample, context)
   }
 
   void PluginActivator::stop(ctkPluginContext *context) { Q_UNUSED(context) }
 }
diff --git a/Modules/QtWidgetsExt/src/QmitkVideoBackground.cpp b/Modules/QtWidgetsExt/src/QmitkVideoBackground.cpp
index 3beff5cf40..20dabea2b4 100644
--- a/Modules/QtWidgetsExt/src/QmitkVideoBackground.cpp
+++ b/Modules/QtWidgetsExt/src/QmitkVideoBackground.cpp
@@ -1,292 +1,294 @@
 /*===================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center,
 Division of Medical and Biological Informatics.
 All rights reserved.
 
 This software is distributed WITHOUT ANY WARRANTY; without
 even the implied warranty of MERCHANTABILITY or FITNESS FOR
 A PARTICULAR PURPOSE.
 
 See LICENSE.txt or http://www.mitk.org for details.
 
 ===================================================================*/
 
 #include "QmitkVideoBackground.h"
 
 // MITK includes
 #include "mitkRenderingManager.h"
 #include "mitkVtkLayerController.h"
 
 // QT includes
 #include <QTimer>
 
 // itk includes
 #include <itkCommand.h>
 
 // VTK includes
 #include <vtkCallbackCommand.h>
 #include <vtkCamera.h>
 #include <vtkCommand.h>
 #include <vtkCommand.h>
 #include <vtkImageActor.h>
 #include <vtkImageImport.h>
 #include <vtkMapper.h>
 #include <vtkObjectFactory.h>
 #include <vtkRenderWindow.h>
 #include <vtkRenderer.h>
 #include <vtkSmartPointer.h>
 #include <vtkSystemIncludes.h>
 
 QmitkVideoBackground::QmitkVideoBackground(QObject *parent)
   : QObject(parent), m_QTimer(new QTimer(this)), m_VideoSource(nullptr), m_VideoSourceObserverTag(0)
 {
   this->ResetVideoBackground();
 }
 
 QmitkVideoBackground::QmitkVideoBackground(mitk::VideoSource *v, int)
   : QObject(nullptr), m_QTimer(new QTimer(this)), m_VideoSource(nullptr), m_VideoSourceObserverTag(0)
 {
   this->SetVideoSource(v);
   this->ResetVideoBackground();
 }
 
 void QmitkVideoBackground::ResetVideoBackground()
 {
   m_QTimer->setInterval(25);
   connect(m_QTimer, SIGNAL(timeout()), SLOT(UpdateVideo()));
   m_renderWindowVectorInfo.clear();
 }
 
 QmitkVideoBackground::~QmitkVideoBackground()
 {
   this->Disable();
 }
 
 void QmitkVideoBackground::AddRenderWindow(vtkRenderWindow *renderWindow)
 {
   if (!renderWindow || !m_VideoSource)
   {
     MITK_WARN << "No Renderwindow or VideoSource set!";
     return;
   }
 
   this->RemoveRenderWindow(renderWindow);
 
   vtkRenderer *videoRenderer = vtkRenderer::New();
   vtkImageActor *videoActor = vtkImageActor::New();
   vtkImageImport *videoImport = vtkImageImport::New();
 
   videoImport->SetDataScalarTypeToUnsignedChar();
   videoImport->SetNumberOfScalarComponents(3);
 
   if (m_VideoSource->GetImageWidth() == 0)
     m_VideoSource->FetchFrame();
 
   videoImport->SetWholeExtent(0, m_VideoSource->GetImageWidth() - 1, 0, m_VideoSource->GetImageHeight() - 1, 0, 1 - 1);
   videoImport->SetDataExtentToWholeExtent();
 
   VideoBackgroundVectorInfo v;
   v.renWin = renderWindow;
   v.videoRenderer = videoRenderer;
   v.videoActor = videoActor;
   v.videoImport = videoImport;
 
   // callback for the deletion of the renderwindow
   vtkSmartPointer<vtkCallbackCommand> deleteCallback = vtkSmartPointer<vtkCallbackCommand>::New();
   deleteCallback->SetCallback(QmitkVideoBackground::OnRenderWindowDelete);
   deleteCallback->SetClientData(this);
 
   v.renderWindowObserverTag = renderWindow->AddObserver(vtkCommand::DeleteEvent, deleteCallback);
 
   m_renderWindowVectorInfo.push_back(v);
 
   // completes the initialization
   this->Modified();
 }
 
 void QmitkVideoBackground::RemoveRenderWindow(vtkRenderWindow *renderWindow)
 {
   this->RemoveRenderWindow(renderWindow, true);
 }
 
 void QmitkVideoBackground::RemoveRenderWindow(vtkRenderWindow *renderWindow, bool removeObserver)
 {
   // search for renderwindow and remove it
   for (auto it = m_renderWindowVectorInfo.begin(); it != m_renderWindowVectorInfo.end(); it++)
   {
     if ((*it).renWin == renderWindow)
     {
       mitk::VtkLayerController *layerController = mitk::VtkLayerController::GetInstance((*it).renWin);
       // unregister video backround renderer from renderwindow
       if (layerController)
         layerController->RemoveRenderer((*it).videoRenderer);
 
       (*it).videoRenderer->Delete();
       (*it).videoActor->Delete();
       (*it).videoImport->Delete();
       // remove listener
       if (removeObserver)
         renderWindow->RemoveObserver((*it).renderWindowObserverTag);
       m_renderWindowVectorInfo.erase(it);
       break;
     }
   }
 }
 
 bool QmitkVideoBackground::IsRenderWindowIncluded(vtkRenderWindow *renderWindow)
 {
   for (auto it = m_renderWindowVectorInfo.begin(); it != m_renderWindowVectorInfo.end(); it++)
   {
     if ((*it).renWin == renderWindow)
       return true;
   }
   return false;
 }
 
 void QmitkVideoBackground::Pause()
 {
   m_QTimer->stop();
 }
 
 void QmitkVideoBackground::Resume()
 {
   m_QTimer->start();
 }
 
 /**
  * Enables drawing of the color Video background.
  * If you want to disable it, call the Disable() function.
  */
 void QmitkVideoBackground::Enable()
 {
   UpdateVideo();
   Modified();
 
   m_QTimer->start();
 }
 
 /**
  * Disables drawing of the color Video background.
  * If you want to enable it, call the Enable() function.
  */
 void QmitkVideoBackground::Disable()
 {
   if (this->IsEnabled())
   {
     mitk::VtkLayerController *layerController = nullptr;
     for (auto it = m_renderWindowVectorInfo.begin(); it != m_renderWindowVectorInfo.end(); it++)
     {
       layerController = mitk::VtkLayerController::GetInstance((*it).renWin);
       if (layerController)
         layerController->RemoveRenderer((*it).videoRenderer);
     }
     m_QTimer->stop();
   }
 }
 
 bool QmitkVideoBackground::IsEnabled()
 {
   return m_QTimer->isActive();
 }
 
 void QmitkVideoBackground::UpdateVideo()
 {
   if (m_renderWindowVectorInfo.size() > 0)
   {
     unsigned char *src = nullptr;
 
     try
     {
       src = m_VideoSource->GetVideoTexture();
     }
     catch (const std::logic_error &error)
     {
       MITK_DEBUG << error.what();
       emit EndOfVideoSourceReached(m_VideoSource);
       return;
     }
 
     if (src)
     {
       for (auto it = m_renderWindowVectorInfo.begin(); it != m_renderWindowVectorInfo.end(); it++)
       {
         (*it).videoImport->SetImportVoidPointer(src);
         (*it).videoImport->Modified();
         (*it).videoImport->Update();
         mitk::RenderingManager::GetInstance()->RequestUpdate((*it).renWin);
       }
       emit NewFrameAvailable(m_VideoSource);
     }
     else
       MITK_WARN << "No video texture available";
   }
 }
 
 void QmitkVideoBackground::Modified()
 {
   // ensures registration of video backrounds in each renderwindow
   for (auto it = m_renderWindowVectorInfo.begin(); it != m_renderWindowVectorInfo.end(); it++)
   {
     (*it).videoImport->Update();
     (*it).videoActor->SetInputData((*it).videoImport->GetOutput());
     (*it).videoRenderer->AddActor2D((*it).videoActor);
     (*it).videoRenderer->ResetCamera();
     (*it).videoRenderer->InteractiveOff();
     (*it).videoRenderer->GetActiveCamera()->ParallelProjectionOn();
     (*it).videoRenderer->GetActiveCamera()->SetParallelScale(m_VideoSource->GetImageHeight() / 2);
 
     mitk::VtkLayerController *layerController = mitk::VtkLayerController::GetInstance((*it).renWin);
 
     if (layerController && !layerController->IsRendererInserted((*it).videoRenderer))
+      {
       layerController->InsertBackgroundRenderer((*it).videoRenderer, true);
+      }
   }
 }
 
 void QmitkVideoBackground::SetVideoSource(mitk::VideoSource *videoSource)
 {
   if (m_VideoSource == videoSource)
     return;
 
   if (m_VideoSource)
     m_VideoSource->RemoveObserver(m_VideoSourceObserverTag);
 
   m_VideoSource = videoSource;
 
   if (m_VideoSource)
   {
     itk::MemberCommand<QmitkVideoBackground>::Pointer _ModifiedCommand =
       itk::MemberCommand<QmitkVideoBackground>::New();
     _ModifiedCommand->SetCallbackFunction(this, &QmitkVideoBackground::OnVideoSourceDelete);
     m_VideoSourceObserverTag = m_VideoSource->AddObserver(itk::DeleteEvent(), _ModifiedCommand);
   }
 }
 
 void QmitkVideoBackground::SetTimerDelay(int ms)
 {
   m_QTimer->setInterval(ms);
 }
 
 mitk::VideoSource *QmitkVideoBackground::GetVideoSource()
 {
   return m_VideoSource;
 }
 
 int QmitkVideoBackground::GetTimerDelay()
 {
   return m_QTimer->interval();
 }
 
 void QmitkVideoBackground::OnVideoSourceDelete(const itk::Object *, const itk::EventObject &)
 {
   this->Disable(); // will only disable if enabled
   m_VideoSource = nullptr;
 }
 
 void QmitkVideoBackground::OnRenderWindowDelete(vtkObject *object, unsigned long, void *clientdata, void *)
 {
   QmitkVideoBackground *instance = static_cast<QmitkVideoBackground *>(clientdata);
   instance->RemoveRenderWindow(static_cast<vtkRenderWindow *>(object), false);
 }