diff --git a/include/control.h b/include/control.h
index 58e3e1149c7a3f6cb085a97c10580aaddd2a6d40..02f846f40e2ed2de6ff3c916d8cef29880d3fb30 100644
--- a/include/control.h
+++ b/include/control.h
@@ -172,7 +172,7 @@ public:
 
     void expandRange(QColor& fromColor, QColor& toColor, const std::array<int, 3>& clickedColor);
     void saveChange(const QColor& fromColor, const QColor& toColor, RectPlotItem* map);
-    bool getColors(QPoint& p, GraphicsView* graphicsView, std::array<int, 3>& clickedColor, QColor& toColor, QColor& fromColor, RectPlotItem*& map);
+    bool getColors(std::array<int, 3>& clickedColor, QColor& toColor, QColor& fromColor, RectPlotItem*& map);
 
     void setXml(QDomElement &elem);
     void getXml(QDomElement &elem);
@@ -243,8 +243,8 @@ private slots:
     void on_mapResetHeight_clicked();
     void on_mapResetPos_clicked();
     void on_mapDefaultHeight_valueChanged(double d);
-    void on_expandColor(QPoint p, GraphicsView* graphicsView);
-    void on_setColor(QPoint, GraphicsView*);
+    void on_expandColor();
+    void on_setColor();
 
 
     void on_trackShow_stateChanged(int i);
diff --git a/include/view.h b/include/view.h
index 43d9df8ec2102c29d306792b22228459ac70bb69..83edda064f6b7e50d8a45024be54dc8869539986 100644
--- a/include/view.h
+++ b/include/view.h
@@ -37,8 +37,8 @@ signals:
     void mouseRightDoubleClick(QPointF pos, int direction);
     void mouseMiddleDoubleClick(int direction);
     void mouseShiftWheel(int delta);
-    void colorSelected(QPoint p, GraphicsView* graphicsView);
-    void setColorEvent(QPoint p, GraphicsView* graphicsView);
+    void colorSelected();
+    void setColorEvent();
     //void mouseRightClick(QPointF pos);
 };
 
diff --git a/src/control.cpp b/src/control.cpp
index 92f338f3fa849ee90dad189ea4a02b9c86d87f63..197435dce61046355504c1382c52eff1ffa24354 100644
--- a/src/control.cpp
+++ b/src/control.cpp
@@ -3201,13 +3201,14 @@ void Control::getXml(QDomElement &elem)
 void Control::on_colorPickerButton_clicked(bool checked)
 {
     //true wenn neu gechecked, false wenn wieder abgewählt
+    GraphicsView *view = mMainWindow->getView();
     if(checked)
     {
-        connect(mMainWindow->getView(), SIGNAL(colorSelected(QPoint, GraphicsView*)), this, SLOT(on_expandColor(QPoint, GraphicsView*)));
-        connect(mMainWindow->getView(), SIGNAL(setColorEvent(QPoint, GraphicsView*)), this, SLOT(on_setColor(QPoint, GraphicsView*)));
+        connect(view, &GraphicsView::colorSelected, this, &Control::on_expandColor);
+        connect(view, &GraphicsView::setColorEvent, this, &Control::on_setColor);
     }else{
-        disconnect(mMainWindow->getView(), SIGNAL(colorSelected(QPoint, GraphicsView*)), this, SLOT(on_expandColor(QPoint, GraphicsView*)));
-        disconnect(mMainWindow->getView(), SIGNAL(setColorEvent(QPoint, GraphicsView*)), this, SLOT(on_setColor(QPoint, GraphicsView*)));
+        disconnect(view, &GraphicsView::colorSelected, this, &Control::on_expandColor);
+        disconnect(view, &GraphicsView::setColorEvent, this, &Control::on_setColor);
     }
 }
 
@@ -3223,30 +3224,25 @@ void Control::on_colorPickerButton_clicked(bool checked)
  *
  * @return Boolean describing, if a color was retrieved
  */
-bool Control::getColors(QPoint& p, GraphicsView* graphicsView, std::array<int, 3>& clickedColor, QColor& toColor, QColor& fromColor, RectPlotItem*& map)
+bool Control::getColors(std::array<int, 3>& clickedColor, QColor& toColor, QColor& fromColor, RectPlotItem*& map)
 {
     if(mMainWindow->getImg().empty())
     {
         return false;
     }
 
-    cv::Mat hsvImg;
-    cv::cvtColor(mMainWindow->getImg(), hsvImg, cv::COLOR_BGR2HSV);
+    QImage *hsvImg = mMainWindow->getImage();
+    QPointF imgPoint = mMainWindow->getMousePosOnImage();
 
-    QPointF pointOnScene = graphicsView->mapToScene(p);
-    QPointF imgPoint = mMainWindow->getImageItem()->mapToScene(pointOnScene);
-    imgPoint.setX(imgPoint.x() + mMainWindow->getImageBorderSize());
-    imgPoint.setY(imgPoint.y() + mMainWindow->getImageBorderSize());
-
-    if(imgPoint.x() < 0 || imgPoint.x() > hsvImg.cols || imgPoint.y() < 0 || imgPoint.y() > hsvImg.rows)
+    if(imgPoint.x() < 0 || imgPoint.x() > hsvImg->width() || imgPoint.y() < 0 || imgPoint.y() > hsvImg->height())
     {
         debout << "Clicked outside the image with color picker." << std::endl;
         return false;
     }
     //debout << "Koordinaten: " << imgPoint.x() << ", " << imgPoint.y() << std::endl;
 
-    cv::Vec3b color = hsvImg.at<cv::Vec3b>((int)imgPoint.y(), (int)imgPoint.x());
-    clickedColor =  {color[0] * 2, color[1], color[2]};
+    QColor color {hsvImg->pixel(imgPoint.toPoint())};//hsvImg.at<cv::Vec3b>((int)imgPoint.y(), (int)imgPoint.x());
+    clickedColor =  {color.hue(), color.saturation(), color.value()};
     //debout << "Farbe: " << (int)clickedColor[0] << ", " << (int)clickedColor[1] << ", " << (int)clickedColor[2] << std::endl;
 
     map = this->getColorPlot()->getMapItem();
@@ -3265,13 +3261,13 @@ bool Control::getColors(QPoint& p, GraphicsView* graphicsView, std::array<int, 3
  * @param p
  * @param graphicsView
  */
-void Control::on_expandColor(QPoint p, GraphicsView* graphicsView)
+void Control::on_expandColor()
 {
 
     QColor fromColor, toColor;
     RectPlotItem* map;
     std::array<int, 3> clickedColor;
-    if(!getColors(p, graphicsView, clickedColor, toColor, fromColor, map))
+    if(!getColors(clickedColor, toColor, fromColor, map))
     {
         return;
     }
@@ -3287,13 +3283,14 @@ void Control::on_expandColor(QPoint p, GraphicsView* graphicsView)
  * @param p
  * @param graphicsView
  */
-void Control::on_setColor(QPoint p , GraphicsView* graphicsView){
+void Control::on_setColor()
+{
     constexpr int BUFFER = 5;
 
     QColor fromColor, toColor;
     RectPlotItem* map;
     std::array<int, 3> clickedColor;
-    if(!getColors(p, graphicsView, clickedColor, toColor, fromColor, map))
+    if(!getColors(clickedColor, toColor, fromColor, map))
     {
         return;
     }
diff --git a/src/view.cpp b/src/view.cpp
index 7c30d24c7bd1c8a44ecb1d04ce6faa2c937ff459..bf3318c74f826ed94a20694364ea9ac075e6583e 100644
--- a/src/view.cpp
+++ b/src/view.cpp
@@ -177,9 +177,9 @@ void GraphicsView::mousePressEvent(QMouseEvent *event)
 {
 
     if(event->modifiers() & Qt::ShiftModifier){
-        emit setColorEvent(event->pos(), this);
+        emit setColorEvent();
     }else{
-        emit colorSelected(event->pos(), this);
+        emit colorSelected();
     }
     QGraphicsView::mousePressEvent(event);
 }