Ubuntu C++ opencv再写一个hello world(并解决常见错误)
Posted hans774882968
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu C++ opencv再写一个hello world(并解决常见错误)相关的知识,希望对你有一定的参考价值。
测试一下cv::imread+cv::imshow是否正常。
需要用到make、cmake
main.cpp
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
int main (int argc, const char **argv)
const vector<string> paths = "壁纸1.png", "壁纸2.png", "壁纸3.jpg";
const string pref = "/home/hans/图片/";
for (string fname : paths)
const string imgPath = pref + fname;
cout << imgPath << endl;
for (int key = 0; key != 27; key = cv::waitKey (10) )
cv::Mat srcImage = cv::imread (imgPath);
cv::imshow (fname, srcImage);
cv::waitKey (0);
cout << "exit" << endl;
return 0;
CMakeLists.txt
cmake_minimum_required (VERSION 3.10)
project (opencv_hw)
find_package(OpenCV REQUIRED)
set(CMAKE_CXX_STANDARD 17)
include_directories(/usr/local/include)
add_executable (opencv_hw main.cpp)
target_link_libraries(opencv_hw $OpenCV_LIBRARIES)
编译运行
mkdir build && cd build
cmake ..
make -j2 // 并行编译
./opencv_hw
运行正常。
常见错误
-
error: (-206) Unrecognized or unsupported array type in function cvGetMat
这也许是因为对应的路径不存在图片!
注意:C++的opencv是支持中文路径的!不需要怀疑这方面,也就是说不要轻信csdn上的说法。
-
根据games101的Assignment1.pdf:”如果没有对虚拟机的核心数进行过设置,可以在 Virtual Box 里点击“设
置”,在弹出的窗口中选择“系统—处理器”,然后就可以设置虚拟机的核心数了。“来设置内核个数,这样才能通过”-j2“进行并行编译。 -
~/图片
表示/home/<username>/图片
,可以在终端里用,但不能在代码里用。
以上是关于Ubuntu C++ opencv再写一个hello world(并解决常见错误)的主要内容,如果未能解决你的问题,请参考以下文章
ubuntu 14.04lts 上的奇怪编译错误 c++ opencv 2.4.10
记录ubuntu20.04成功编译安装opencv4 c++环境
记录ubuntu20.04成功编译安装opencv4 c++环境