嵌入式学习——opencv图像库编程

环境配置

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和图像处理库,广泛用于各种计算机视觉任务,如图像处理、视频分析、人脸识别、物体检测、机器学习等。它提供了丰富的函数和工具,用于处理图像和视频数据,支持多种编程语言(如 C++、Python、Java 等)。

首先我们去官网下载Sources版本;

下载好过后,将压缩包拖入虚拟机中,并用命令解压,配置环境;

unzip opencv-4.11.0.zip //解压文件

解压完成过后,在自己的目录下就会多一个opencv-4.11.0的文件夹,根据自己下载的版本,后缀可能有所不同。

然后进入opencv文件夹,安装相关依赖库cmake,同时创建自己的编译文件夹并配置、编译,以便后续编译等操作。

注意:这里消耗时间比较长,需要耐心等待,在干其他事情时,确保自己的虚拟机开启,以免电脑进入休眠断开连接。

cd opencv-3.4.10 //进入opencv文件夹

sudo apt install cmake //安装依赖

mkdir my_build_dir //创建文件夹

cd my_build_dir //进入文件夹

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

//配置编译文件夹

sudo make -j4 //编译

sudo make install

随后配置OpenCV编译环境:

sudo gedit /etc/ld.so.conf.d/opencv.conf //添加到路径

source /etc/bash.bashrc //使配置生效并更新

sudo updatedb  

图片编辑

在虚拟机中保存一张自己需要编辑的图片(IImage),然后创建函数对图片进行修改,具体代码根据自己的要求编辑,这里展示亮度调整处理。

加载图像:

IplImage* image = cvLoadImage("lena.jpg");

argc == 2 ? cvLoadImage(argv[1]) : 0;

计算中心点:

center = cvPoint(image->width / 2, image->height / 2);

对图像进行亮度调整:

for (int i = 0; i < image->height; i++)

    for (int j = 0; j < image->width; j++) {

        double dx = (double)(j - center.x) / center.x;

        double dy = (double)(i - center.y) / center.y;

        double weight = exp((dx * dx + dy * dy) * scale);

        uchar* ptr = &CV_IMAGE_ELEM(image, uchar, i, j * 3);

        ptr[0] = cvRound(ptr[0] * weight);

        ptr[1] = cvRound(ptr[1] * weight);

        ptr[2] = cvRound(ptr[2] * weight);

    }

最终效果

第一张为处理后的图片,第二张为处理前:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值