这里以Jetson NX为例子,在安装了jtop之后,我们打开jtop,在按6,可以看到jetpack的一些信息。
上面显示系统是Jetpack 4.4版本的。OpenCV是刷机的时候预装的4.1.1版本【当然也可以自己卸载之后手动安装其他版本】。这里为了方便,我选择直接使用系统自带的OpenCV。
pkg-config --modversion opencv
命令显示找不到opencv,但是我们可以找到opencv4
pkg-config --modversion opencv4
以一段opencv代码为例子
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char **argv)
{
for(int i=1; i< argc; i++)
{
printf("argument %d is %s \n",i,argv[i]);
//打印命令的参数
}
Mat img = imread("girl3.jpg");
printf("img height %d, img width %d \n",img.rows, img.cols);
Mat dst;
resize(img, dst, Size(img.size().width / 2, img.size[0] / 2));
imwrite("resize.jpg", dst);
return 0;
}
备注:img.rows; img.size[0]; img.size().height 都是图像高度的表达方法
编译有两种方法
第一种,用命令行编译
g++会自动链接libstdc.so.6++
g++ -o Main demo.cc `pkg-config opencv4 --libs --cflags`
注意gcc命令在链接时默认使用C的库,只有添加了-lstdc++选项才会使用 C++ 的库。
gcc -o Main demo.cc `pkg-config opencv4 --libs --cflags` -lstdc++
结果如下
第二种,用CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
find_package(OpenCV)
include_directories(OpenCV_INCLUDE_DIRS)
message(${OpenCV_INCLUDE_DIRS})
message(${OpenCV_LIBRARIES})
add_definitions("-Wall -std=c++11")
add_executable(Main_1 demo.cc)
target_link_libraries(Main_1 ${OpenCV_LIBRARIES})
编译的命令如下
mkdir build
cd build
cmake ..
make
将图片girl3.jpg复制到build文件夹下面,再运行./Main_1 xx aa就可以了。