本人正在学习 OpenCV 计算机视觉相关知识,此篇为个人学习笔记,参考书籍为冯振等人的《OpenCV4 快速入门》。主要记录 OpenCV 在 Linux 环境下的编译、运行实操流程与相关知识点总结。

笔记内容均为亲自实操验证,过程中踩过不少编译配置、运行参数的坑,整理出来一方面用于自己复盘巩固,另一方面也希望能帮助到刚入门 OpenCV、在编译运行示例程序时遇到问题的小伙伴。文中内容如有疏漏或错误之处,欢迎各位大佬评论区指正交流,共同进步~

!!层级标题编号与书中编号一致,以方便查阅对应书籍。

第一章 初识OpenCV

1.1 什么是OpenCV

全称:计算机视觉库(Open Source Computer Vision Library)

图像处理:通过数学函数和图像变换等手段对二维数字图像进行分析,获得数据的潜在信息,通常包括图像压缩,复原和增强。

机器视觉:通过摄像头等设备代替人眼,对目标进行识别、跟踪和测量等。是一个逆过程,通过观测到的信息恢复成被观测物体或者环境的信息。

1.2.2 image watch插件

打开:视图---其他窗口---image watch

作用:读取图像数据类型、图像通道数和 像素尺寸

1.2.3验证opencv是否成功

CMakeLists.txt文件

cmake_minimum_required(VERSION 3.22)
project(testopencv)
set(CMAKE_CXX_FLAGS "-std=c++14")

find_package(OpenCV 4.9.0 REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(testopencv main.cpp)
target_link_libraries(testopencv ${OpenCV_LIBS})

main.cpp文件

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main(int argc, char** agrv){
    Mat img=imread("apple.jpg");
    imshow("test",img);
    waitKey(0);
    return 0;
    }

操作步骤:

编译运行

cmake .
make

1.4.2 边缘检测edge举例

ubuntu系统中的~/opencv4/opencv-4.9.0/samples/cpp/example_cmake里面已经有CMakeLists.txt文件,所以直接进行编译执行即可,注意要将示例图片一并复制到example_cmake文件夹下。

以下为运行边缘检测的全部过程:

cd opencv4 #进入edge所在文件夹
cd opencv-4.9.0/samples/cpp/    #继续进入
cd example_cmake  #继续进入
cp ../edge.cpp ./example.cpp    #将edge文件复制到当前文件夹,并代替原有example.cpp
cmake .   #编译
make
ls       #查看可执行文件
./opencv_example   #运行

输出为:

1.4.3 K聚类kmeans

作用:通过随机生成散点,利用K聚类算法将散点判定为不同群体,确定每个群体的中心位置。

步骤:和1.4.2大致相同。

代码过程如下所示:

cd opencv4/opencv-4.9.0/samples/cpp/example_cmake
cp ../kmeans.cpp ./example.cpp
cmake .
make
ls
./opencv_example

输出为:按“空格”会到下一张,按“Q”退出

1.4.4二维码识别和后面例子与以上操作相近

注意:1.4.5相机使用

1.4.5相机使用,在最后一步运行时的代码有所不同,首先,可通过ls /dev/video*命令查看系统中可用的摄像头设备编号。

在运行时的代码为:

./opencv_example 0

按“空格”键进行照片捕捉,保存路径为~/opencv4/opencv-4.9.0/samples/cpp/example_cmake。

结束

至此,第一章就结束了,望各位读者“一键三连”,再次感谢读到这里的各位读者。有任何问题欢迎评论区留言或者私信。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐