what(): OpenCV(4.2.0) OpenCV/modules/highgui/src/window.cpp:634: error: (-2:Unspecified error)
1. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function ‘cvNamedWindow’
terminate called after throwing an instance of 'cv::Exception'
what(): OpenCV(4.2.0) /home/yongqiang/opencv_workspace/OpenCV/modules/highgui/src/window.cpp:634: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvNamedWindow'
已放弃 (核心已转储)
2. libgtk2.0-dev pkg-config
sudo apt-get install -y libgtk2.0-dev pkg-config
3. -D WITH_GTK=ON
install-opencv.sh
######################################
# INSTALL OPENCV ON UBUNTU OR DEBIAN #
######################################
# -------------------------------------------------------------------- |
# SCRIPT OPTIONS |
# ---------------------------------------------------------------------|
OPENCV_VERSION='4.2.0' # Version to be installed
OPENCV_CONTRIB='NO' # Install OpenCV's extra modules (YES/NO)
# -------------------------------------------------------------------- |
# | THIS SCRIPT IS TESTED CORRECTLY ON |
# |------------------------------------------------------|
# | OS | OpenCV | Test | Last test |
# |------------------|--------------|------|-------------|
# | Debian 10.2 | OpenCV 4.2.0 | OK | 26 Dec 2019 |
# |----------------------------------------------------- |
# | Debian 10.1 | OpenCV 4.1.1 | OK | 28 Sep 2019 |
# |----------------------------------------------------- |
# | Ubuntu 18.04 LTS | OpenCV 4.1.0 | OK | 22 Jun 2019 |
# | Debian 9.9 | OpenCV 4.1.0 | OK | 22 Jun 2019 |
# |----------------------------------------------------- |
# | Ubuntu 18.04 LTS | OpenCV 3.4.2 | OK | 18 Jul 2018 |
# | Debian 9.5 | OpenCV 3.4.2 | OK | 18 Jul 2018 |
# 1. KEEP UBUNTU OR DEBIAN UP TO DATE
sudo apt-get -y update
# sudo apt-get -y upgrade # Uncomment to install new versions of packages currently installed
# sudo apt-get -y dist-upgrade # Uncomment to handle changing dependencies with new vers. of pack.
# sudo apt-get -y autoremove # Uncomment to remove packages that are now no longer needed
# 2. INSTALL THE DEPENDENCIES
# Build tools:
sudo apt-get install -y build-essential cmake
# GUI (if you want GTK, change 'qt5-default' to 'libgtkglext1-dev' and remove '-DWITH_QT=ON'):
sudo apt-get install -y libgtk2.0-dev pkg-config qt5-default libvtk6-dev
# Media I/O:
sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev \
libopenexr-dev libgdal-dev
# Video I/O:
sudo apt-get install -y libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev \
libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm \
libopencore-amrnb-dev libopencore-amrwb-dev libv4l-dev libxine2-dev
# Parallelism and linear algebra libraries:
sudo apt-get install -y libtbb-dev libeigen3-dev
# Python:
sudo apt-get install -y python-dev python-tk pylint python-numpy \
python3-dev python3-tk pylint3 python3-numpy flake8
# Java:
sudo apt-get install -y ant default-jdk
# Documentation and other:
sudo apt-get install -y doxygen unzip wget
# 3. INSTALL THE LIBRARY
wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip
unzip ${OPENCV_VERSION}.zip # && rm ${OPENCV_VERSION}.zip
mv opencv-${OPENCV_VERSION} OpenCV
if [ $OPENCV_CONTRIB = 'YES' ]; then
wget https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip
unzip ${OPENCV_VERSION}.zip && rm ${OPENCV_VERSION}.zip
mv opencv_contrib-${OPENCV_VERSION} opencv_contrib
mv opencv_contrib OpenCV
fi
cd OpenCV && mkdir build && cd build
if [ $OPENCV_CONTRIB = 'NO' ]; then
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D WITH_GTK=ON \
-D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_V4L=ON -D WITH_VTK=ON \
-D WITH_TBB=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..
fi
if [ $OPENCV_CONTRIB = 'YES' ]; then
cmake -DWITH_QT=ON -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON \
-DWITH_XINE=ON -DENABLE_PRECOMPILED_HEADERS=OFF \
-DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..
fi
make -j8
sudo make install
sudo ldconfig
# 4. EXECUTE SOME OPENCV EXAMPLES AND COMPILE A DEMONSTRATION
# To complete this step, please visit 'http://milq.github.io/install-opencv-ubuntu-debian'.
4. DisplayImage
DisplayImage.cpp
/*
============================================================================
Name : DisplayImage.cpp
Author : Yongqiang Cheng
Version : Version 1.0.0
Copyright : Copyright (c) 2019 Yongqiang Cheng
Description : Display Image in C, Ansi-style
============================================================================
*/
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main( int argc, char** argv )
{
String imageName( "person.jpg" ); // by default
if( argc > 1)
{
imageName = argv[1];
}
Mat image;
image = imread( samples::findFile( imageName ), IMREAD_COLOR ); // Read the file
if( image.empty() ) // Check for invalid input
{
cout << "Could not open or find the image" << std::endl ;
return -1;
}
namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display.
imshow( "Display window", image ); // Show our image inside it.
waitKey(0); // Wait for a keystroke in the window
return 0;
}
DisplayImage.sh
g++ -std=c++11 DisplayImage.cpp -o DisplayImage `pkg-config --cflags --libs opencv4`
./DisplayImage person.jpg
person.jpg
(base) yongqiang@famu-sys:~/makefile_work$ conda deactivate
yongqiang@famu-sys:~/makefile_work$ bash ./DisplayImage.sh
yongqiang@famu-sys:~/makefile_work$