Raspberry Pi Open CV Install - opencv

I installed opencv-python and opencv-python-contrib
after i installed them I realized I wasn't supposed to
How do I uninstall it
Also, which one should I keep, to do facial recongnition with raspberry pi
Import cv2 didn't work when I tried to run a python file, I don't know why it is happening!

If you are using armbian or raspbian, you can uninstall packages with apt:
apt uninstall opencv-python opencv-python-contrib
I suggest that if you want to completely uninstall and remove configuration files use purge:
apt purge opencv-python opencv-python-contrib
and aftter that, you can uninstall packages that came with opencv:
apt autoremove --purge

If you need Extra modules: just keep opencv-python-contrib
Extra modules https://docs.opencv.org/4.x/index.html
pypi.org https://pypi.org/project/opencv-contrib-python/
Installation and Usage
If you have previous/other manually installed (= not installed via pip) version of OpenCV installed (e.g. cv2 module in the root of Python's site-packages), remove it before installation to avoid conflicts.
Make sure that your pip version is up-to-date (19.3 is the minimum supported version): pip install --upgrade pip. Check version with pip -V. For example Linux distributions ship usually with very old pip versions which cause a lot of unexpected problems especially with the manylinux format.
Select the correct package for your environment:
There are four different packages (see options 1, 2, 3 and 4 below) and you should SELECT ONLY ONE OF THEM. Do not install multiple different packages in the same environment. There is no plugin architecture: all the packages use the same namespace (cv2). If you installed multiple different packages in the same environment, uninstall them all with pip uninstall and reinstall only one package.
a. Packages for standard desktop environments (Windows, macOS, almost any GNU/Linux distribution)
Option 1 - Main modules package: pip install opencv-python
Option 2 - Full package (contains both main modules and contrib/extra modules): pip install opencv-contrib-python (check contrib/extra modules listing from OpenCV documentation)
b. Packages for server (headless) environments (such as Docker, cloud environments etc.), no GUI library dependencies
These packages are smaller than the two other packages above because they do not contain any GUI functionality (not compiled with Qt / other GUI components). This means that the packages avoid a heavy dependency chain to X11 libraries and you will have for example smaller Docker images as a result. You should always use these packages if you do not use cv2.imshow et al. or you are using some other package (such as PyQt) than OpenCV to create your GUI.
Option 3 - Headless main modules package: pip install opencv-python-headless
Option 4 - Headless full package (contains both main modules and contrib/extra modules): pip install opencv-contrib-python-headless (check contrib/extra modules listing from OpenCV documentation)

Related

can't find OpenCV package on RHEL 8

Some sites say OpenCV could be installed on RHEL from the system repository:
sudo yum install opencv opencv-devel opencv-python
I run RHEL UBI container redhat/ubi8 and tried to install OpenCV - package is not found.
Then I install EPEL repos from https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm, same result. The only opencv-related package is libfreenect-opencv.
I understand I could compile OpenCV from the scratch, but I'd like to go with already compiled package.
You need to enable CodeReady Linux Builder Repository on RHEL 8:
subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms

python3-wheel installed, still using legacy 'setup.py' when installing dlib

I've forked dlandon's Zoneminder project in order to build a Docker image using Debian Bullseye instead of Ubuntu, for i386 (I'm installing it into a 32-bit mini PC).
Part of the requiriments is installing dlib (latest is 19.22.0). I've installed the required dependencies (python3-pip, python3-setuptools and python3-wheel, as well as GCC and CMake).
When installing dlib, the terminal outputs:
Collecting dlib
Downloading dlib-19.22.0.tar.gz (7.4 MB)
Using legacy 'setup.py install' for dlib, since package 'wheel' is not installed.
Installing collected packages: dlib
Running setup.py install for dlib: started
...
The relevant part is (even with python3-wheel installed)
Using legacy 'setup.py install' for dlib, since package 'wheel' is not installed.
dlib builts successfully but takes a looong time to build, however. This happens with any packages supossed to use wheel.
I haven't found any (answered) questions about this specific issue, so, if there is something I missed, I would be told about that.
Everything is in the Dockerfile.
try pip install wheel in your env

How to setup ROS environment variable on Ubuntu 20.04?

I tried following this guide to install ROS, but even after adding ROS source.list and its key
sudo apt install ros-melodic-desktop-full
gave error.
E: Unable to locate package ros-melodic-desktop-full
Then I ran this command
sudo apt search ros
to see if any such package exists. I couldn't find ros-melodic-desktop-full but I found another similar package ros-desktop-full.
So I installed it instead. The installation went smooth without giving any errors.
Next step in the guide is to set-up ROS environment variable, but I have no such directory
/opt/ros
So how do I setup the environment variable?
P.S.
I also installed some tools and dependencies with this command
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
and initialized rosdep
sudo rosdep init
rosdep update
The ros-desktop-full package you installed is part of the official Ubuntu release.
ROS Melodic (and in the future, Noetic) is published by the OSRF in a separate repository (packages.ros.org). These packages install to /opt/ros/. However, some ROS packages have also been ported to Debian, which is how they found their way to Ubuntu (which derives from Debian).
The Debian packages are fully functional, but they do not install to /opt/ros. Instead, everything is integrated in the operating system itself. This means that you need to set up your personal workspace slightly differently.
Given that most tutorials assume that you use the OSRF packages, I suggest you either wait for the Noetic release (scheduled for the end of May 2020), then install ros-noetic-desktop-full, or downgrade to Ubuntu 18.04 LTS to use ROS Melodic.
From the documentation here, melodic is only supported on Ubuntu 18.04. The ROS version targeting Focal (20.04) is Noetic, but that one has not been released yet (see Distributions). I'm not sure what ROS version Ubuntu packages (the ros-desktop-full one you installed), but I was not successful in using it.
If you really do want to use Ubuntu 20.04, then I think your best option currently is to compile from source. Last time I checked the precompiled debs for Noetic are not yet available at http://packages.ros.org/ros/ubuntu (you can track release progress at github issue 21513). No idea if compiling Noetic from source is easy or hard, but I was able to compile ROS2 foxy from source without too much trouble though.

Installing OpenCV into PyCharm

Idk if this is a stackoverflow-appropriate post so forgive if the question is misplaced. I'm trying to install OpenCV into my Pycharm IDE through the conda virtual environment. I typed conda install -c conda-forge opencv inside the PyCharm terminal and it has been doing this for 11 hours and God knows how many more to go.
Pycharm did this with PyTorch as well. Am I doing something wrong or is this normal?
While you can install packages directly in PyCharm by going to file->settings select Project Interpreter and click on the '+' icon on the top right (see image)
I would recommend creating a requirements.txt file in the root of your project, and write down all your required packages. When a package is missing, PyCharm will automatically suggest to install the package for you.
e.g. for installing opencv you can add the following to you requirements.txt
opencv-python
Or even specify the version that your project needs
opencv-python==4.1.2
edit: the advantage of using a requirement.txt is that you can more easily port the project to another machine, and re-install the packages if needed.

ModuleNotFoundError: No module named 'cv2' How can I install packages in python folders? rather than in anaconda

I have previously installed python 3.7, anaconda3 and jupyter notebook.
Then I tried to install opencv library using the following command.
pip install opencv-python
and it said,
Requirement already satisfied: opencv-python in c:\programdata\anaconda3\lib\site-packages (4.1.1.26)
When I tried to import open-cv library from IDLE it gives the following error.
ModuleNotFoundError: No module named 'cv2'.
But when I run it from the jupyter notebook it works.
The reason for this as I see is that the packages are installed in the anaconda3 folders but not in the python folders.
How can I install packages in python folders? As I need to run this from the IDLE.
I'm using python 3.7.1 on windows 10.
Thank you.
what IDLE are u using for program in python? If you are using Python IDLE, usually when you import packages, are installed in C:\Users\Your_Username\AppData\Local\Programs\Python\Python37-32\Lib
If you want to install a package in other folder, try to use this
pip install --target=C:\path\to\folder\ opencv-python
If you have another IDLE, put me in the comments what is it (PyCharm, VSCode...).

Resources