ubuntu opencv imshow不可用问题

本文介绍了在使用Qt调试caffe过程中遇到的imshow显示错误,并详细解释了如何通过配置cmake来解决问题,包括正确设置WITH_GTK等选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  今天在采用Qt调试caffe的deploy.prototxt,在显示结果图像时,在imshow处显示错误:

OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvShowImage, file /home/zy/work/package/opencv-3.1.0/modules/highgui/src/window.cpp, line 545

  后经多番折腾,找到原因,是因为在用cmake编译opencv时,WITH_GTK未勾选导致imshow不可用。因此解决方法如下:

找到安装opencv文件夹下的build文件夹,cd build,执行 cmake-gui ..  后边有空格加两点,启动cmake的图形界面,

在图形界面面中,将部分勾选去掉:

WITH_CUDA 不勾选;

WITH_FFMPEG 勾选(影响视频解析);

WITH_CUFFT 不勾选;

WITH_GTK 勾选(影响imshow)

WITH_TBB 勾选

BUILD_TBB 勾选

BUILD_TIFF 勾选

然后点击configure,点击generate。

然后在opencv/build目录下(即上边所说的build文件夹),在终端输入make -j8

make成功后,再输入sudo make install 

然后问题就完美地解决了

### 安装或配置OpenCV 4.9.0在Ubuntu上的方法 #### 准备工作 为了成功安装和配置OpenCV 4.9.0,在Ubuntu环境中首先要确保系统已经更新至最新状态并安装必要的开发工具包和其他依赖库。对于同版本的Ubuntu,具体命令可能略有差异。 #### 安装依赖项 针对Ubuntu 22.04,可以执行如下命令来安装构建OpenCV所需的依赖项: ```bash sudo apt update && sudo apt upgrade -y sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev -y ``` #### 下载OpenCV源代码及相关模块 接着需要获取OpenCV及其额外功能模块`opencv_contrib`的压缩包文件。可以通过访问官方网站或者使用wget命令直接从GitHub仓库下载指定版本的tarball文件[^3]: ```bash cd ~ wget -O opencv-4.9.0.tar.gz https://github.com/opencv/opencv/archive/refs/tags/4.9.0.tar.gz wget -O opencv_contrib-4.9.0.tar.gz https://github.com/opencv/opencv_contrib/archive/refs/tags/4.9.0.tar.gz ``` 解压这些档案并将它们放置在一个合适的位置以便后续操作: ```bash mkdir ~/opencv_build && cd ~/opencv_build tar -xf ~/opencv-4.9.0.tar.gz tar -xf ~/opencv_contrib-4.9.0.tar.gz mv opencv-4.9.0 opencv mv opencv_contrib-4.9.0 opencv_contrib ``` #### 编译与安装 创建一个新的目录用于存放编译过程中产生的临时文件,并进入该目录初始化CMake项目设置。这里假设读者希望启用CUDA支持,则还需要提前完成相应的GPU驱动程序以及CUDA Toolkit等相关软件栈的部署工作[^4]。如果涉及GPU加速部分则可忽略这部分参数选项。 ```bash cd ~/opencv_build/opencv mkdir build && cd build cmake .. # 如果要加入CUDA支持, 使用下面这条更详细的指令代替上面那条简单的cmake.. # cmake -D CMAKE_BUILD_TYPE=RELEASE \ # -D CMAKE_INSTALL_PREFIX=/usr/local \ # -D INSTALL_PYTHON_EXAMPLES=ON \ # -D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \ # -D BUILD_EXAMPLES=ON \ # -D WITH_CUDA=ON \ # -D CUDA_ARCH_BIN="8.6;8.9" \ # 这里填写自己的GPU架构编号 # .. make -j$(nproc) sudo make install ``` 上述过程完成后即表示已成功完成了OpenCV 4.9.0的基础安装流程。如果一切顺利的话现在应该可以在终端通过Python解释器或者其他编程语言接口调用OpenCV所提供的图像处理函数了[^1]。 #### 测试安装成果 最后一步是对新安装好的OpenCV进行简单测试以验证其可用性。可以从官方样例中挑选一个小例子来进行尝试运行,比如位于`samples/cpp/tutorial_code/introduction/display_image.cpp`下的显示图片示例程序。 ```cpp #include <opencv2/opencv.hpp> using namespace cv; int main(int argc, char** argv ) { if (argc != 2) { printf("usage: DisplayImage.out <Image_Path>\n"); return -1; } Mat image; image = imread(argv[1], IMREAD_COLOR); // Read the file if(image.empty()) // Check for invalid input { printf("Could not open or find the image\n"); return -1; } namedWindow( "Display window", WINDOW_AUTOSIZE );// Create a window for display. imshow( "Display window", image ); // Show our image inside it. waitKey(0); // Wait indefinitely until keypress... return 0; } ``` 保存这段代码到一个`.cpp`文件之后利用g++编译它并与OpenCV链接起来再执行生成出来的二进制文件即可看到效果。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤劳的凌菲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值