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

Linux系统学习Day2——在Linux系统中开发OpenCV

一、OpenCV简介

        OpenCV(Open Source Computer Vision Library)是一个开源的跨平台计算机视觉和机器学习库,广泛应用于图像处理、视频分析、物体检测等领域。它提供了丰富的算法和高效的工具集,支持C++、Python等多种语言,涵盖特征提取、目标识别、3D重建等功能,被广泛应用于人脸识别、自动驾驶、医学影像分析及工业检测等场景。凭借其开源特性、强大性能和活跃社区,OpenCV成为开发者实现计算机视觉任务的首选框架。

二、在Linux系统中开发OpenCV

1、创建一个代码文件夹code,并在其中创建 test1.cpp 文件。

2、将以下代码复制到 test1.cpp 文件中:

#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;int main(int argc, char** argv)
{CvPoint center;double scale = -3;IplImage* image = cvLoadImage("lena.jpg");argc == 2 ? cvLoadImage(argv[1]) : 0;cvShowImage("Image", image);if (!image) return -1;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);}Mat src;src = cvarrToMat(image);cv::imwrite("test.png", src);cvNamedWindow("test", 1);imshow("test", src);cvWaitKey();return 0;
}

3、运行以下命令来编译代码:

g++ test1.cpp -o test1 `pkg-config --cflags --libs opencv`

4、在代码的相同目录下放一张待处理的图片,命名为:lena.jpg

5、运行程序:

./test1

6、实验结果:

  • 结果图前后对比:

  • 对图片进行亮度加权处理后,生成新的图片test.png。

总结:

        通过本次实验,我对OpenCV库在Linux系统中的应用有了更深入的理解。实验中,我成功创建了图像处理程序,实现了对图片的亮度加权处理,并生成了新的图片。这让我对OpenCV的强大功能有了更直观的认识。在编写和编译代码的过程中,我遇到了一些问题,但通过查阅资料和反复尝试,最终成功解决了问题。这次实验不仅提升了我的编程能力,也增强了我对图像处理技术的理解。未来,我希望能进一步探索OpenCV的更多功能,为实际项目开发提供技术支持。

参考博客:https://blog.csdn.net/weixin_56393108/article/details/120708930

相关文章:

Linux系统学习Day2——在Linux系统中开发OpenCV

一、OpenCV简介 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的跨平台计算机视觉和机器学习库&#xff0c;广泛应用于图像处理、视频分析、物体检测等领域。它提供了丰富的算法和高效的工具集&#xff0c;支持C、Python等多种语言&#xff0c…...

【图像分类】【深度学习】图像分类评价指标

【图像分类】【深度学习】图像分类评价指标 文章目录 【图像分类】【深度学习】图像分类评价指标前言二分类评价指标Accuracy(准确率/精度)Precision(精确率/查准率)Recall(召回率/查全率)F1-ScoreAUC-ROC曲线(Area Under the Curv-Receiver Operating Characteristic Curve)二…...

一组可能的机器学习问题列表

线性回归与多项式拟合的关系最小二乘法在机器学习中的应用梯度下降是如何实现的贝叶斯分类器的应用场景高斯分布与判定在哪里用到模型的评估有哪些参数误差中的偏差和方差定义训练集分组的快捷方式如何度量模型性能查准率查全率的定义roc,aux的含义正则化是什么意思k均值用来解…...

context上下文(一)

创建一个基础的context 使用BackGround函数&#xff0c;BackGround函数原型如下&#xff1a; func Background() Context {return backgroundCtx{} } 作用&#xff1a;Background 函数用于创建一个空的 context.Context 对象。 context.Background() 函数用于获取一个空的 cont…...

蓝桥杯单片机刷题——按键控制距离显示精度

设计要求 驱动超声波传感器&#xff0c;启动距离测量功能,并将其结果显示到数码管上&#xff0c;距离数据单位为m。 按键“S4”定义为“切换”按键&#xff0c;通过此按键切换距离的显示精度&#xff08;一位或两位小数&#xff09;。切换顺序如图所示。 数码管显示格式如下图…...

el-time-picker标签的使用

需求&#xff1a; 实现培训日期&#xff0c;用户可以选择某一天的日期&#xff0c;这个比较简单 <el-form-item label"培训日期" prop"startTime"><el-date-picker clearablev-model"form.startTime"type"date"placeholder…...

云平台一键部署【OmniGen】多功能图像生成模型(2025更新版)

OmniGen 是智源推出的一款全新的扩散模型架构&#xff0c;专注于统一图像生成。它简化了图像生成的复杂流程&#xff0c;通过一个框架处理多种任务&#xff0c;例如文本生成图像、图像编辑和基于视觉条件的生成等。此外&#xff0c;OmniGen 通过统一学习结构实现了知识迁移&…...

C/C++ 知识点:解释型语言与编译型语言

文章目录 一、解释型语言与编译型语言1、概念2、主要区别3、示例对比 一、解释型语言与编译型语言 1、概念 解释型语言 代码逐行解释执行&#xff0c;无需提前编译。如&#xff1a;Python、JavaScript、Ruby。 编译型语言 代码先编译成机器码&#xff0c;再直接执行。如&…...

算法训练之动态规划(四)——简单多状态问题

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…...

uniapp离线打包提示未添加videoplayer模块

uniapp中使用到video标签&#xff0c;但是离线打包放到安卓工程中&#xff0c;运行到真机中时提示如下&#xff1a; 解决方案&#xff1a; 1、把media-release.aar、weex_videoplayer-release.aar放到工程的libs目录下; 文档&#xff1a;https://nativesupport.dcloud.net.cn/…...

5. 蓝桥公园

题目描述 小明喜欢观景&#xff0c;于是今天他来到了蓝桥公园。 已知公园有 N 个景点&#xff0c;景点和景点之间一共有 M 条道路。小明有 Q 个观景计划&#xff0c;每个计划包含一个起点 stst 和一个终点 eded&#xff0c;表示他想从 stst 去到 eded。但是小明的体力有限&am…...

机器人零位标定修正流程介绍

如果想看运动学标定可以看看 机器人运动学参数标定, 一次性把运动学参数和零位标定等一起标定求解. 1. 零位标定 零位标定是机器人运动学标定中的一个重要步骤&#xff0c;其目的是校正机器人关节的初始位置误差。以下是需要进行零位标定的主要原因&#xff1a; 制造误差 在机…...

大疆无人机系列知识

目录 知识 开发者文档 &#xff08;上云&#xff09; 无人机的应用 知识 大疆行业无人机接入音视频平台协议详解_大疆无人机 视频流-CSDN博客 开发者文档 &#xff08;上云&#xff09; 上云API 无人机的应用 【大疆无人机地图测绘技术学习&#xff1a;高精度、高效率的…...

深入 C++ 线程库:从创建到同步的探索之旅

目录 创建多线程 获取线程返回值 1.传指针 2.传引用 原子操作 互斥量 互斥量&#xff08;Mutex&#xff09;的基本概念 mutex类型介绍 锁的类型 互斥锁&#xff08;Mutex&#xff09; 自旋锁&#xff08;Spin Lock&#xff09; 读写锁&#xff08;Read - Write Lo…...

【2025年认证杯数学中国数学建模网络挑战赛】A题 解题建模过程与模型代码(基于matlab)

目录 【2025年认证杯数学建模挑战赛】A题解题建模过程与模型代码&#xff08;基于matlab&#xff09;A题 小行星轨迹预测解题思路第一问模型与求解第二问模型与求解 【2025年认证杯数学建模挑战赛】A题 解题建模过程与模型代码&#xff08;基于matlab&#xff09; A题 小行星轨…...

Rust重定义数据库内核:从内存安全到性能革命的破界之路

Rust语言正在颠覆传统数据库开发范式&#xff0c;其独特的所有权系统与零成本抽象能力&#xff0c;为攻克C/C时代遗留的内存泄漏、并发缺陷等顽疾提供全新解决方案。本文通过TiKV、Materialize等新一代数据库核心组件的实践案例&#xff0c;剖析Rust如何重塑存储引擎、查询优化…...

大模型在慢性髓细胞白血病(CML)初治成人患者诊疗中的应用研究

目录 一、引言 1.1 研究背景与意义 1.2 国内外研究现状 1.3 研究目的与内容 二、大模型技术与 CML 相关知识 2.1 大模型技术原理与特点 2.2 CML 的病理生理与诊疗现状 三、术前风险预测与手术方案制定 3.1 术前数据收集与预处理 3.2 大模型预测术前风险 3.3 根据预测…...

Matlab 分数阶PID控制永磁同步电机

1、内容简介 Matlab 203-分数阶PID控制永磁同步电机 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...

GO语言入门-反射5(结构体的Tag)

12.5 结构体的 Tag 在定义结构体类型时&#xff0c;可以在字段后面加上一个字符串&#xff0c;称为 Struct Tag。Tag 主要用来补充附加信息。 Tag 由多个 key - value 构成&#xff0c;并以空格来分隔&#xff0c;key 和 value 之间用英文的冒号分隔。其格式如下&#xff1a;…...

免费下载 | 2025电力数据资产管理体系白皮书

本文是一份关于2025年电力数据资产管理体系的白皮书&#xff0c;详细阐述了电力数据要素和数据资产管理的现状、挑战、发展进程以及电网数据资产管理体系的构建与实践。白皮书强调了数据作为生产要素的重要性&#xff0c;并提出了电网数据资产管理体系的创新模式&#xff0c;旨…...

4185 费马小定理求逆元

4185 费马小定理求逆元 ⭐️难度&#xff1a;简单 &#x1f31f;考点&#xff1a;费马小定理 &#x1f4d6; &#x1f4da; import java.util.Scanner; import java.util.Arrays;public class Main {static int[][] a;public static void main(String[] args) {Scanner sc …...

处理Excel表不等长时间序列用tsfresh提取时序特征

我原本的时间序列格式是excel表记录的&#xff0c;每一行是一条时间序列&#xff0c;时间序列不等长。 要把excel表数据读取出来之后转换成extract_features需要的格式。 1.读取excel表数据 import pandas as pd import numpy as np from tsfresh import extract_features mda…...

从keys到SCAN:Redis批量删除的进化之路

标签:Redis、批量删除、前缀匹配、性能优化 一、痛点分析:为什么需要批量删除指定前缀的键? 在 Redis 使用过程中,我们经常会遇到这样的场景: 需要对某一类数据进行清理,例如用户会话、缓存数据等,而这些数据通常以某种前缀命名(如 user:session:*、cache:data:*)。如…...

界面控件DevExpress WinForms v25.1新功能预览 - 聚焦用户体验升级

DevExpress WinForms拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜…...

卷积神经网络(CNN)基础

目录 一、应用场景 二、卷积神经网络的结构 1. 输入层&#xff08;Input Layer&#xff09; 2. 卷积层&#xff08;Convolutional Layer&#xff09; 3. 池化层&#xff08;Pooling Layer&#xff09; 最大池化&#xff08;max_pooling&#xff09;或平均池化&#xff08;…...

Android Spotify-v9.0.36.443-arm64-Experimental Merged版

Android Spotify 链接&#xff1a;https://pan.xunlei.com/s/VONXTdIv9d4FnAiNMMliIAEJA1?pwdxt7q# Android Spotify-v9.0.36.443-arm64-Experimental Merged版 享受高达256kbps的AAC音频。...

html元素转图像之深入探索 html - to - image:功能、应用与实践

html元素转图像之深入探索 html-to-image&#xff1a;功能、应用与实践 一、引言 使用该插件 需要注意页面上的图片都能正常显示&#xff0c;否则会报错&#xff0c;或生成的图片有误&#xff0c;注意注意。 在当今数字化内容丰富多样的时代&#xff0c;将网页上的特定 HTML…...

LLM之Agent(十六)| MCP已“过时”?Google近期推出Agent2Agent 协议 (A2A)

如今&#xff0c;企业越来越多地构建和部署自主代理&#xff0c;以帮助扩展、自动化和增强整个工作场所的流程 - 从订购新笔记本电脑到协助客户服务代表&#xff0c;再到协助供应链规划。 为了最大限度地发挥代理 AI 的优势&#xff0c;这些代理能够在一个动态的、多代理的生态…...

Transformer 训练:AutoModelForCausalLM,AutoModelForSequenceClassification

Transformer 训练:AutoModelForCausalLM,AutoModelForSequenceClassification 目录 Transformer 训练:AutoModelForCausalLM,AutoModelForSequenceClassification`AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)`功能概述参数解释`AutoModelForSequen…...

网络安全1

一、网络安全的定义与重要性 定义 网络安全&#xff08;信息技术安全&#xff09;&#xff1a;保护计算机系统和网络免受电子攻击的技术和过程&#xff0c;包括保护个人信息和企业数据不被盗窃、破坏或非法访问。涵盖范围&#xff1a;网络设备、数据传输、系统运行安全。 重要…...