当前位置: 首页 > news >正文

嵌入式学习——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);}

最终效果

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

相关文章:

  • puzzle(0531)脑力航迹
  • 33-公交车司机管理系统
  • [ABAQUS有限元分析] 1.单个零件静力学分析
  • Nginx在微服务架构项目(Spring Cloud)中的强大作用
  • 30元一公斤的樱桃甜不甜
  • 《Operating System Concepts》阅读笔记:p748-p748
  • MySQL:9.表的内连和外连
  • 山东大学创新项目实训开发日志(19)之前端知识深度学习
  • 2-6-1-1 QNX编程入门之进程和线程(八)
  • 二叉树的顺序结构及实现
  • 【Flutter】使用LiveKit和Flutter构建实时视频聊天应用
  • 【Docker项目实战】使用Docker部署Jupyter Notebook服务
  • Spring 微服务解决了单体架构的哪些痛点?
  • 深度解析 PointNet:点云深度学习的开山之作
  • 从零开始用Pytorch实现LLaMA 4的混合专家(MoE)模型
  • 【C++详解】C++入门(一)
  • Spring Boot 集成 Spring Cloud 的详细教程
  • 【概率论,算法】排列的峰值期望
  • 【linux基本工具的使用 yum vim gdb 以及makefile自动化构建项目】
  • Web3.0热门领域NFT项目实战课程
  • 讲座|在数字化时代,“记住”到底意味着什么
  • 电动自行车新国标将于9月1日落地,首批6家检测机构出炉
  • 老人在健身中心晕倒获AED急救,上海检察机关为何被感谢?
  • 今年1-3月全国吸收外资2692.3亿元人民币
  • 杭州挂牌3宗住宅用地,起始总价约30.04亿元
  • 世卫成员国就《大流行病协议》达成一致,首次演练应对气候诱发的病毒危机