Matching 2 .tiff images pixel-by-pixel
-
@SGaist: Ok, I followed this: https://doc.qt.io/qtforpython/PySide6/QtWidgets/QRubberBand.html#qrubberband I put them into the Class. And that's it?
-
That's the base yes.
-
@SGaist: It seems to get response, although I do not see the red rectangle... But the mouse events seem to recognize when I press or when I release the mouse. But I need to install rubberband because I get this error:
File "code.py", line 174, in mouseMoveEvent rubberBand.setGeometry(QRect(origin, event.pos()).normalized()) NameError: name 'rubberBand' is not definedI am trying to fix it though! THANX!!!
-
@SGaist: It seems to get response, although I do not see the red rectangle... But the mouse events seem to recognize when I press or when I release the mouse. But I need to install rubberband because I get this error:
File "code.py", line 174, in mouseMoveEvent rubberBand.setGeometry(QRect(origin, event.pos()).normalized()) NameError: name 'rubberBand' is not definedI am trying to fix it though! THANX!!!
@john_hobbyist said in Matching 2 .tiff images pixel-by-pixel:
NameError: name 'rubberBand' is not defined
So, did you define rubberBand?
-
@jsulm: I try this solution from here: https://stackoverflow.com/questions/59899103/python-3-6-how-to-install-rubberband I haven't found a working solution but I am trying, because it has many! Any other idea?
-
@jsulm: I try this solution from here: https://stackoverflow.com/questions/59899103/python-3-6-how-to-install-rubberband I haven't found a working solution but I am trying, because it has many! Any other idea?
@john_hobbyist You did not answer the question...
The error you get says that rubberBand was not defined. It has nothing to do with installing anything. -
-
@john_hobbyist Please read more carefully! Nobody is talking about "rubberband"!
The question was about: "NameError: name 'rubberBand' is not defined"
rubberband != rubberBand
So, one more time I repeat the question: was rubberBand defined anywhere? -
There are some errors in the python document snippet that will be fixed.
Here's an example:
import sys from PySide2.QtCore import QRect from PySide2.QtCore import QSize from PySide2.QtWidgets import QWidget from PySide2.QtWidgets import QRubberBand from PySide2.QtWidgets import QApplication class Widget(QWidget): def __init__(self, parent=None): super().__init__(parent) self.rubberBand = None self.origin = None def mousePressEvent(self, event): self.origin = event.pos() if not self.rubberBand: self.rubberBand = QRubberBand(QRubberBand.Rectangle, self) self.rubberBand.setGeometry(QRect(self.origin, QSize())) self.rubberBand.show() def mouseMoveEvent(self, event): self.rubberBand.setGeometry(QRect(self.origin, event.pos()).normalized()) def mouseReleaseEvent(self, event): self.rubberBand.hide() # determine selection, for example using QRect.intersects() # and QRect.contains(). if __name__ == "__main__": app = QApplication(sys.argv) widget = Widget() widget.show() sys.exit(app.exec_())On a side note, it looks like you are a beginner with Python, I would recommend getting the basics first before going further.
-
@SGaist: I installed PySide2 and your code runs perfectly! Many thanks!
I combined your above code with my code and tried to run it, but I get this error:
File "code.py", line 30, in <module> from PySide2.QtCore import QRect ImportError: /lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.15' not found (required by /home/john/.local/lib/python3.8/site-packages/PySide2/QtCore.abi3.so)After google search I found and followed the suggestions from this tutorial: https://stackoverflow.com/questions/63903441/python3-importerror-lib-x86-64-linux-gnu-libqt5core-so-5-version-qt-5-15-n which does not help because it is related to PyQt5 and not PySide2.
I have to note at this point that in my code I use both PyQt5 and PySide2 packages. Could the above error be a result of conflict between the packages?
I also study this: https://forum.qt.io/topic/89263/qt5-pyqt5-and-opencv-problem-with-import
-
How did you install them both ?
Did you do that in the same environment ? -
@SGaist : Yes I did that on the same environment.
I tried this:
sudo apt-get install python3-pyqt5.qtwebengineand this:
sudo apt-get install python3-pyqt5 -
You did not install PySide2 in the same manner.
-
@SGaist : Yes.
-
@john_hobbyist said in Matching 2 .tiff images pixel-by-pixel:
required by /home/john/.local/lib/python3.8/site-packages/PySide2/QtCore.abi3.so)
This suggests that it's not the case.
-
@SGaist: So what should I do?
-
Cleanup your environment and use something like Python's virtualenv or conda to create local environments for your Python development where you can have exactly what you need.
-
Ok I have activated virtual environment and have installed everything from the beginning. This is the error I got, which I am trying to solve for many hours without any success....
QObject::moveToThread: Current thread (0x2b4f9a0) is not the object's thread (0x37b2280). Cannot move to target thread (0x2b4f9a0) qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/john/Desktop/venv/lib/python3.8/site-packages/cv2/qt/plugins" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: xcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl. Aborted (core dumped)Then I followed this solution: https://forum.qt.io/topic/125009/problem-with-qt-qpa-plugin-running-on-a-docker-in-kubuntu/18 and basically I installed these libraries (all with sudo):
pip3 install opencv-python-headless apt-get update ##[edited] apt-get install ffmpeg libsm6 libxext6 -y pip3 install matplotlib apt-get install python3-pyqt5 -y pip3 install pyqt5 pip3 install wheel pip3 install pandas pip3 install openpyxl pip3 install geopandas apt update -y apt install libpq-dev -y apt install gdal-bin -y apt install libgdal-dev -y pip3 install numba pip3 install GDAL apt-get install qt5-default -y pip3 install numpy ldd /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so apt-get update -y apt-get install -y '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev apt-get install -y libxcb-util-dev QT_DEBUG_PLUGINS=1and I now I am getting this error:
qt.qpa.xcb: could not connect to display :1.0 qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb. Aborted (core dumped)Any idea???
-
Ok I have activated virtual environment and have installed everything from the beginning. This is the error I got, which I am trying to solve for many hours without any success....
QObject::moveToThread: Current thread (0x2b4f9a0) is not the object's thread (0x37b2280). Cannot move to target thread (0x2b4f9a0) qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/john/Desktop/venv/lib/python3.8/site-packages/cv2/qt/plugins" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: xcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl. Aborted (core dumped)Then I followed this solution: https://forum.qt.io/topic/125009/problem-with-qt-qpa-plugin-running-on-a-docker-in-kubuntu/18 and basically I installed these libraries (all with sudo):
pip3 install opencv-python-headless apt-get update ##[edited] apt-get install ffmpeg libsm6 libxext6 -y pip3 install matplotlib apt-get install python3-pyqt5 -y pip3 install pyqt5 pip3 install wheel pip3 install pandas pip3 install openpyxl pip3 install geopandas apt update -y apt install libpq-dev -y apt install gdal-bin -y apt install libgdal-dev -y pip3 install numba pip3 install GDAL apt-get install qt5-default -y pip3 install numpy ldd /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so apt-get update -y apt-get install -y '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev apt-get install -y libxcb-util-dev QT_DEBUG_PLUGINS=1and I now I am getting this error:
qt.qpa.xcb: could not connect to display :1.0 qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb. Aborted (core dumped)Any idea???