From 5a81146083a61162c70836afd0a3924678aa814d Mon Sep 17 00:00:00 2001 From: Aitor Martinez Date: Thu, 9 Mar 2017 18:11:55 +0100 Subject: [PATCH 1/3] [issue #706] added jderobotComm and logo to colorTuner_py --- src/tools/colorTuner_py/colorTuner.py | 9 +- src/tools/colorTuner_py/colorTuner_py.cfg | 7 +- src/tools/colorTuner_py/gui/GUI.py | 7 +- src/tools/colorTuner_py/gui/controlWidget.py | 19 +++- src/tools/colorTuner_py/gui/logoWidget.py | 44 ++++++++ .../colorTuner_py/resources/genResources | 4 + .../colorTuner_py/resources/jderobot.png | Bin 0 -> 14487 bytes .../colorTuner_py/resources/jderobot.svg | 11 ++ .../colorTuner_py/resources/resources.qrc | 5 + src/tools/colorTuner_py/resources_rc.py | 100 ++++++++++++++++++ .../colorTuner_py/sensors/cameraFilter.py | 8 +- 11 files changed, 202 insertions(+), 12 deletions(-) create mode 100644 src/tools/colorTuner_py/gui/logoWidget.py create mode 100755 src/tools/colorTuner_py/resources/genResources create mode 100644 src/tools/colorTuner_py/resources/jderobot.png create mode 100644 src/tools/colorTuner_py/resources/jderobot.svg create mode 100644 src/tools/colorTuner_py/resources/resources.qrc create mode 100644 src/tools/colorTuner_py/resources_rc.py diff --git a/src/tools/colorTuner_py/colorTuner.py b/src/tools/colorTuner_py/colorTuner.py index 4cd430d82..45391c180 100755 --- a/src/tools/colorTuner_py/colorTuner.py +++ b/src/tools/colorTuner_py/colorTuner.py @@ -22,7 +22,7 @@ import sys import easyiceconfig as EasyIce from gui.threadGUI import ThreadGUI -from parallelIce.cameraClient import CameraClient +import jderobotComm as comm from sensors.cameraFilter import CameraFilter from gui.GUI import MainWindow from PyQt5.QtWidgets import QApplication @@ -34,8 +34,11 @@ if __name__ == '__main__': ic = EasyIce.initialize(sys.argv) - prop = ic.getProperties() - cameraCli = CameraClient(ic, "ColorTuner.Camera", True) + + #starting comm + ic, node = comm.init(ic) + + cameraCli = comm.getCameraClient(ic, "ColorTuner.Camera", True) camera = CameraFilter(cameraCli) app = QApplication(sys.argv) diff --git a/src/tools/colorTuner_py/colorTuner_py.cfg b/src/tools/colorTuner_py/colorTuner_py.cfg index 380d03c19..947c501a6 100644 --- a/src/tools/colorTuner_py/colorTuner_py.cfg +++ b/src/tools/colorTuner_py/colorTuner_py.cfg @@ -1 +1,6 @@ -ColorTuner.Camera.Proxy = cameraA:default -h localhost -p 9999 +# 0 -> Deactivate, 1 -> Ice , 2 -> ROS +ColorTuner.Camera.Server=1 +ColorTuner.Camera.Proxy=cameraA:default -h localhost -p 9999 +ColorTuner.Camera.Format=RGB8 +ColorTuner.Camera.Topic=/camera/rgb/image_raw +ColorTuner.Camera.Name=ColorTuner \ No newline at end of file diff --git a/src/tools/colorTuner_py/gui/GUI.py b/src/tools/colorTuner_py/gui/GUI.py index 536c291a8..50514c66a 100644 --- a/src/tools/colorTuner_py/gui/GUI.py +++ b/src/tools/colorTuner_py/gui/GUI.py @@ -22,8 +22,9 @@ from PyQt5.QtCore import pyqtSignal, Qt, QRect from PyQt5.QtWidgets import QMainWindow, QVBoxLayout, QWidget #from gui.communicator import Communicator -from gui.imagesWidget import ImagesWidget -from gui.controlWidget import ControlWidget +from .imagesWidget import ImagesWidget +from .controlWidget import ControlWidget + class MainWindow(QMainWindow): @@ -49,6 +50,8 @@ def __init__(self, parent=None): self.updGUI.connect(self.updateGUI) + #self.verticalLayoutWidget.setStyleSheet("background-color:black;") + #self.controlCommunicator=Communicator() #self.imageCommunicator=Communicator() diff --git a/src/tools/colorTuner_py/gui/controlWidget.py b/src/tools/colorTuner_py/gui/controlWidget.py index 05f8eb74a..0276e9749 100644 --- a/src/tools/colorTuner_py/gui/controlWidget.py +++ b/src/tools/colorTuner_py/gui/controlWidget.py @@ -22,8 +22,10 @@ from filters.hsvFilter import HSVMAX, HSVMIN from filters.rgbFilter import RGBMAX, RGBMIN from filters.yuvFilter import YUVMAX, YUVMIN +from .logoWidget import LogoWidget - +WIDTH = 1340 +HEIGTH = 200 class ControlWidget(QWidget): @@ -42,8 +44,8 @@ def __init__(self,winParent): def initUI(self): - self.setMinimumSize(1340,200) - self.setMaximumSize(1340,200) + self.setMinimumSize(WIDTH,HEIGTH) + self.setMaximumSize(WIDTH,HEIGTH) '''Radio buttons for Original/RGB/HSV/YUV images''' self.origButton = QRadioButton("Original") @@ -63,6 +65,7 @@ def initUI(self): self.hLayout = QHBoxLayout(self) self.hLayout.setObjectName("hLayout") + ''' Vertical Layout for radio buttons ''' self.radioLayout = QVBoxLayout() self.radioLayout.setObjectName("radioLayout") @@ -73,6 +76,13 @@ def initUI(self): self.vSpacer = QSpacerItem(30, 500, QSizePolicy.Ignored, QSizePolicy.Ignored); self.radioLayout.addItem(self.vSpacer) + + self.logoLayout = QVBoxLayout() + self.logo = LogoWidget(self, HEIGTH, HEIGTH) + self.logoLayout.addWidget(self.logo) + + + hmin,smin,vmin = HSVMIN hmax,smax,vmax = HSVMAX @@ -89,6 +99,7 @@ def initUI(self): self.hminLayout.addWidget(self.hminLabel) self.hminLayout.addWidget(self.hminValue) self.hminLayout.addWidget(self.hminSlider) + ''' Vertical Layout for HMAX Slider''' self.hmaxLayout = QVBoxLayout() @@ -162,6 +173,7 @@ def initUI(self): '''Adding all the vertical layouts to the main horizontal layout''' self.hLayout.addLayout(self.radioLayout) + self.hLayout.addLayout(self.logoLayout) self.hLayout.addLayout(self.hminLayout) self.hLayout.addLayout(self.hmaxLayout) self.hLayout.addLayout(self.sminLayout) @@ -170,6 +182,7 @@ def initUI(self): self.hLayout.addLayout(self.vmaxLayout) self.setLayout(self.hLayout) + '''Signals for sliders value changes''' self.hminSlider.valueChanged.connect(self.changeHmin) self.hmaxSlider.valueChanged.connect(self.changeHmax) diff --git a/src/tools/colorTuner_py/gui/logoWidget.py b/src/tools/colorTuner_py/gui/logoWidget.py new file mode 100644 index 000000000..9b2863a0a --- /dev/null +++ b/src/tools/colorTuner_py/gui/logoWidget.py @@ -0,0 +1,44 @@ +# +# Copyright (C) 1997-2015 JDE Developers Team +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# Authors : +# Alberto Martin Florido +# +import resources_rc +from PyQt5 import QtGui +from PyQt5.QtCore import Qt +from PyQt5.QtWidgets import QWidget + +class LogoWidget(QWidget): + + def __init__(self,winParent, width=0, height=0): + super(LogoWidget, self).__init__() + self.winParent=winParent + qimage=QtGui.QImage() + qimage.load(':images/jderobot.svg') + if (width != 0 and height != 0): + self.qimage = qimage.scaled(0.8*width, 0.8*height, Qt.KeepAspectRatio) + #self.qimage = qimage.scaled(0.8*width, 0.8*height) + self.resize(width, height) + else: + self.qimage = qimage + + + def paintEvent(self, e): + + painter=QtGui.QPainter(self) + painter.drawImage(self.width()/2-self.qimage.width()/2, self.height()/2-self.qimage.height()/2, self.qimage) + + diff --git a/src/tools/colorTuner_py/resources/genResources b/src/tools/colorTuner_py/resources/genResources new file mode 100755 index 000000000..eeeb9672f --- /dev/null +++ b/src/tools/colorTuner_py/resources/genResources @@ -0,0 +1,4 @@ +#!/bin/bash +pyrcc5 resources.qrc -o resources_rc.py +mv resources_rc.py .. + diff --git a/src/tools/colorTuner_py/resources/jderobot.png b/src/tools/colorTuner_py/resources/jderobot.png new file mode 100644 index 0000000000000000000000000000000000000000..db59bb578ec6e5060ce197fa70cdc89901d70c1b GIT binary patch literal 14487 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Í#f#;*c2;&12pSaRCb4pHA^AB; zsDd6;<6-*Y#nuSqKIVOoZ_T$%mPR zNr`sSQ{xB*4HDvQSS+e<_;1%=TFUl4omAKN(bVc@&whPJFPWRKUMR1VKRj8y2%)rw-icI&K>7>dQBaM&$499EXj%SV7sJKO0S2w)gOL9UapeR&p( zX65z)6y_zXEfwt&=de<~v6+3fE@}?x_>#qJ8zl6`OC(Qm}xg&F^T4OH{17g z(cJE)sm)DJRswEMXw3HQq@^z&sCCH?ezlqM51JVAhq>;O5`OaC<&;IdgkE3hzD+yY z?y1<=ughlbKqY#?pBojm_+;>XN3`LA<^&A`lm6Wz~|xzMRa&3_h>) zgI{fyi*J2i@)kZU36md^)S17N2OqBx!!SP*;q&@}_qBI5J92cBu~^vIwm@XWD%uA|E + + + + + + + + JdeRobot + + diff --git a/src/tools/colorTuner_py/resources/resources.qrc b/src/tools/colorTuner_py/resources/resources.qrc new file mode 100644 index 000000000..f61958ef5 --- /dev/null +++ b/src/tools/colorTuner_py/resources/resources.qrc @@ -0,0 +1,5 @@ + + + jderobot.svg + + diff --git a/src/tools/colorTuner_py/resources_rc.py b/src/tools/colorTuner_py/resources_rc.py new file mode 100644 index 000000000..75e83449a --- /dev/null +++ b/src/tools/colorTuner_py/resources_rc.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- + +# Resource object code +# +# Created by: The Resource Compiler for PyQt5 (Qt v5.5.1) +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore + +qt_resource_data = b"\ +\x00\x00\x03\xc6\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\ +\x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\ +\x6e\x6f\x22\x3f\x3e\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\ +\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\ +\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x30\x2f\ +\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\ +\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x54\x52\x2f\x32\x30\x30\x31\x2f\ +\x50\x52\x2d\x53\x56\x47\x2d\x32\x30\x30\x31\x30\x37\x31\x39\x2f\ +\x44\x54\x44\x2f\x73\x76\x67\x31\x30\x2e\x64\x74\x64\x22\x3e\x0a\ +\x3c\x73\x76\x67\x20\x77\x69\x64\x74\x68\x3d\x22\x31\x33\x63\x6d\ +\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x35\x63\x6d\x22\x20\ +\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x37\x39\x20\x37\x39\x20\x32\ +\x34\x33\x20\x32\x39\x35\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\ +\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\ +\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\ +\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\ +\x6c\x69\x6e\x6b\x22\x3e\x0a\x20\x20\x3c\x65\x6c\x6c\x69\x70\x73\ +\x65\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x20\x6e\ +\x6f\x6e\x65\x3b\x20\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\ +\x79\x3a\x30\x3b\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\ +\x68\x3a\x20\x38\x3b\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x23\x66\ +\x66\x61\x35\x30\x30\x22\x20\x63\x78\x3d\x22\x31\x38\x34\x22\x20\ +\x63\x79\x3d\x22\x32\x31\x38\x22\x20\x72\x78\x3d\x22\x38\x37\x22\ +\x20\x72\x79\x3d\x22\x38\x34\x22\x2f\x3e\x0a\x20\x20\x3c\x65\x6c\ +\x6c\x69\x70\x73\x65\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\ +\x6c\x3a\x20\x6e\x6f\x6e\x65\x3b\x20\x66\x69\x6c\x6c\x2d\x6f\x70\ +\x61\x63\x69\x74\x79\x3a\x30\x3b\x20\x73\x74\x72\x6f\x6b\x65\x2d\ +\x77\x69\x64\x74\x68\x3a\x20\x38\x3b\x20\x73\x74\x72\x6f\x6b\x65\ +\x3a\x20\x23\x30\x38\x39\x31\x66\x38\x22\x20\x63\x78\x3d\x22\x31\ +\x36\x35\x22\x20\x63\x79\x3d\x22\x32\x33\x33\x22\x20\x72\x78\x3d\ +\x22\x35\x34\x22\x20\x72\x79\x3d\x22\x35\x34\x22\x2f\x3e\x0a\x20\ +\x20\x3c\x65\x6c\x6c\x69\x70\x73\x65\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x66\x69\x6c\x6c\x3a\x20\x6e\x6f\x6e\x65\x3b\x20\x66\x69\x6c\ +\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x30\x3b\x20\x73\x74\x72\ +\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x20\x38\x3b\x20\x73\x74\ +\x72\x6f\x6b\x65\x3a\x20\x23\x66\x66\x30\x30\x30\x30\x22\x20\x63\ +\x78\x3d\x22\x32\x30\x31\x22\x20\x63\x79\x3d\x22\x32\x30\x31\x22\ +\x20\x72\x78\x3d\x22\x31\x31\x37\x22\x20\x72\x79\x3d\x22\x31\x31\ +\x37\x22\x2f\x3e\x0a\x20\x20\x3c\x65\x6c\x6c\x69\x70\x73\x65\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x20\x6e\x6f\x6e\ +\x65\x3b\x20\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x30\x3b\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\ +\x20\x38\x3b\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x23\x30\x62\x62\ +\x64\x30\x62\x22\x20\x63\x78\x3d\x22\x31\x35\x32\x22\x20\x63\x79\ +\x3d\x22\x32\x34\x35\x22\x20\x72\x78\x3d\x22\x32\x39\x22\x20\x72\ +\x79\x3d\x22\x32\x39\x22\x2f\x3e\x0a\x20\x20\x3c\x74\x65\x78\x74\ +\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3d\x22\x33\x39\x2e\x34\ +\x39\x39\x38\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\ +\x3a\x20\x23\x30\x37\x32\x35\x39\x33\x3b\x74\x65\x78\x74\x2d\x61\ +\x6e\x63\x68\x6f\x72\x3a\x6d\x69\x64\x64\x6c\x65\x3b\x66\x6f\x6e\ +\x74\x2d\x66\x61\x6d\x69\x6c\x79\x3a\x73\x61\x6e\x73\x2d\x73\x65\ +\x72\x69\x66\x3b\x66\x6f\x6e\x74\x2d\x73\x74\x79\x6c\x65\x3a\x6e\ +\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\x68\ +\x74\x3a\x37\x30\x30\x22\x20\x78\x3d\x22\x32\x30\x35\x22\x20\x79\ +\x3d\x22\x33\x36\x35\x22\x3e\x0a\x20\x20\x20\x20\x3c\x74\x73\x70\ +\x61\x6e\x20\x78\x3d\x22\x32\x30\x35\x22\x20\x79\x3d\x22\x33\x36\ +\x35\x22\x3e\x4a\x64\x65\x52\x6f\x62\x6f\x74\x3c\x2f\x74\x73\x70\ +\x61\x6e\x3e\x0a\x20\x20\x3c\x2f\x74\x65\x78\x74\x3e\x0a\x3c\x2f\ +\x73\x76\x67\x3e\x0a\ +" + +qt_resource_name = b"\ +\x00\x06\ +\x07\x03\x7d\xc3\ +\x00\x69\ +\x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ +\x00\x0c\ +\x07\x72\xc8\x67\ +\x00\x6a\ +\x00\x64\x00\x65\x00\x72\x00\x6f\x00\x62\x00\x6f\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +" + +qt_resource_struct = b"\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ +\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +" + +def qInitResources(): + QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + +def qCleanupResources(): + QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + +qInitResources() diff --git a/src/tools/colorTuner_py/sensors/cameraFilter.py b/src/tools/colorTuner_py/sensors/cameraFilter.py index 79f32321a..f8b27d189 100644 --- a/src/tools/colorTuner_py/sensors/cameraFilter.py +++ b/src/tools/colorTuner_py/sensors/cameraFilter.py @@ -38,8 +38,10 @@ def __init__(self, camera): self.lock = threading.Lock() self.client = camera - self.height= self.client.getHeight() - self.width = self.client.getWidth() + img = self.client.getImage() + + self.height= img.height + self.width = img.width self.kill_event = threading.Event() @@ -98,7 +100,7 @@ def getYUVImage (self): def update(self): - img = self.client.getImage() + img = self.client.getImage().data rgb = self.getFilter(RGB).apply(img) hsv = self.getFilter(HSV).apply(img) yuv = self.getFilter(YUV).apply(img) From c8b0cd817532187b8e8c67a7ef859d344c769b89 Mon Sep 17 00:00:00 2001 From: Aitor Martinez Date: Thu, 9 Mar 2017 18:14:01 +0100 Subject: [PATCH 2/3] [issue #706] Added resources to CmakeLists of colorTuner_py --- src/tools/colorTuner_py/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tools/colorTuner_py/CMakeLists.txt b/src/tools/colorTuner_py/CMakeLists.txt index 1d4db1000..fb5efec1a 100644 --- a/src/tools/colorTuner_py/CMakeLists.txt +++ b/src/tools/colorTuner_py/CMakeLists.txt @@ -8,6 +8,7 @@ #ENDFOREACH(header) INSTALL(FILES colorTuner.py DESTINATION share/jderobot/python/colorTuner_py/ COMPONENT tools) +INSTALL(FILES resources_rc.py DESTINATION share/jderobot/python/colorTuner_py/ COMPONENT tools) # Install gui INSTALL (DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/gui DESTINATION share/jderobot/python/colorTuner_py COMPONENT tools PATTERN .svn EXCLUDE) From f4df65186f35ace8251b93d506b706285ebb3a4e Mon Sep 17 00:00:00 2001 From: Aitor Martinez Date: Fri, 10 Mar 2017 09:48:44 +0100 Subject: [PATCH 3/3] [issue #706] changed python3 for python2 in colorTuner_py --- src/tools/colorTuner_py/colorTuner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/colorTuner_py/colorTuner.py b/src/tools/colorTuner_py/colorTuner.py index 45391c180..1fa541d25 100755 --- a/src/tools/colorTuner_py/colorTuner.py +++ b/src/tools/colorTuner_py/colorTuner.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3.5 +#!/usr/bin/python2 # # Copyright (C) 1997-2016 JDE Developers Team #