我尝试使用aur包在arch上安装opencv。它已经成功安装但是当我尝试在python中导入opencv2时,我收到以下错误
ImportError: libhdf5.so.100: cannot open shared object file: No such file or directory
不仅仅是python,即使我尝试使用它运行c ++示例代码,我也遇到了同样的错误。我试过在网上搜索,发现一些人面临类似的问题,但我仍然无法修复它。
我已安装Open CV版本3.2
答案 0 :(得分:5)
我终于解决了这个问题。这是一个愚蠢的,但同时令人困惑,因为有多个包具有相似的名称,但只有一个工作。此外,没有多少人在网上发布过这个问题,因此我发布了我的解决方案,希望它可以帮助节省别人的时间。
步骤1:运行此命令(如果已安装OpenCV,则为可选)
pacman -Syu base-devel opencv opencv-samples
第2步:只需安装此软件包
https://www.archlinux.org/packages/community/x86_64/hdf5/
完成!
答案 1 :(得分:2)
在版本4中,在默认配置下,编译opencv
需要hdf5
和vtk
,但是未作为依赖项列出
的opencv
。
有2种可能的解决方法:
sudo pacman -S hdf5 vtk
(占用231.24 MiB
的内存)hdf5
和vtk
,请从-lopencv_hdf
中删除-lopencv_viz
和/usr/lib/pkgconfig/opencv4.pc
(以防程序使用{{1} }),或在编译时删除2个标记。警告:如果使用解决方法2,则更新pkg-config
程序包将还原这些更改。您可能希望将它们添加为opencv
中的NoUpgrade
条目(有关详细信息,请参见手册页),但是该文件将不再更新,并且可能会破坏其他内容。
答案 2 :(得分:0)
用于 opencv4
sudo pacman -Sy opencv vtk hdf5
(可选)安装Qt
sudo pacman -Sy qt5-base qtcreator qt5-doc gdb cmake
在QtCreator中创建CMake项目
粘贴以下内容
CMakeLists.txt
cmake_minimum_required(VERSION 3.5)
project(opencv LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(opencv main.cpp)
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
target_link_libraries( opencv ${OpenCV_LIBS} )
main.cpp
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
if ( argc != 2 )
{
printf("usage: DisplayImage.out <Image_Path>\n");
return -1;
}
Mat image;
image = imread( argv[1], 1 );
if ( !image.data )
{
printf("No image data \n");
return -1;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);
waitKey(0);
return 0;
}