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

OPENCV的AT函数

一.AT函数介绍

在 OpenCV 中,at() 是一个模板成员函数,用于访问和修改矩阵或图像中特定位置的元素。它提供了一种直接且类型安全的方式来操作单个像素值,但需要注意其性能和类型匹配问题

AT函数是OPENCV中重要的函数之一,它的作用是修改Mat的矩阵某个像素值,也就是我们要修改图像中的像素点就需要利用AT函数去获取并且修改,AT函数的修改一般需要循环cols和rows。然后对每个像素点进行修改。

二.代码的使用

下面这段代码的作用是调整图像中每个像素的颜色值,以此改变图像的整体色调

Mat mat = imread("frame1.jpg");//循环colsfor (int i = 0; i < mat.rows; i++){//循环rowsfor (int j = 0; j < mat.cols; j++){mat.at<Vec3b>(i,j)[0] = (int)mat.at<Vec3b>(i,j)[0] - 10; //R Channelmat.at<Vec3b>(i,j)[1] = (int)mat.at<Vec3b>(i,j)[1] - 50; //G Channelmat.at<Vec3b>(i,j)[2] = (int)mat.at<Vec3b>(i,j)[2] - 10; //B Channel}}imwrite("frame1_process.jpg", mat);

mat.at<Vec3b>(i,j)[0] 是蓝色(B)通道。

mat.at<Vec3b>(i,j)[1] 为绿色(G)通道。

mat.at<Vec3b>(i,j)[2] 是红色(R)通道。

此代码对每个通道进行了不同程度的减法操作:

蓝色通道数值减少 10。

绿色通道数值减少 50。

红色通道数值减少 10。

这样处理后,图像整体会呈现出偏红的色调,因为绿色通道被大幅削弱了。

1.Vec3b 解析

在 OpenCV 里,Vec3b 代表一个由 3 个字节(Byte)构成的向量,它对应着彩色图像中某个像素的三个通道。这里采用的是 BGR 通道顺序,并非 RGB:

Vec3b 是 OpenCV 中用于表示短向量的模板类,它的完整定义是 Vec<uchar, 3>,也就是包含 3 个无符号字符(unsigned char)的向量。在图像处理方面,它有以下特点:

  1. 每个通道的数值范围是 0 - 255。
  2. 适合表示 8 位无符号的 BGR 图像。
  3. 可以通过索引 [0][1][2] 来访问对应的通道。

下面是完整代码案例

#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;int main() {// 读取图像Mat image = imread("input.jpg");if (image.empty()) {cout << "无法读取图像!" << endl;return -1;}// 遍历每个像素并调整颜色for (int i = 0; i < image.rows; i++) {for (int j = 0; j < image.cols; j++) {// 这里的代码会降低绿色通道的值,让图像偏红image.at<Vec3b>(i,j)[0] = max(0, image.at<Vec3b>(i,j)[0] - 10); // Bimage.at<Vec3b>(i,j)[1] = max(0, image.at<Vec3b>(i,j)[1] - 50); // Gimage.at<Vec3b>(i,j)[2] = max(0, image.at<Vec3b>(i,j)[2] - 10); // R}}// 保存处理后的图像imwrite("output.jpg", image);cout << "图像处理完成!" << endl;return 0;
}

 2.cvtColor函数

 cvtColor是 OpenCV 中用于颜色空间转换的核心函数,可实现不同色彩模式(如 RGB、HSV、灰度图等)之间的相互转换。下面为你详细介绍其作用和使用方法:

void cvtColor(InputArray src,      // 输入图像OutputArray dst,     // 输出图像int code,            // 颜色转换代码(如 COLOR_BGR2GRAY)int dstCn = 0);      // 目标图像的通道数(0 表示自动推导)
转换代码	作用
COLOR_BGR2GRAY	BGR → 灰度图
COLOR_BGR2RGB	BGR → RGB(通道顺序调整)
COLOR_BGR2HSV	BGR → HSV(色调、饱和度、亮度)
COLOR_BGR2YCrCb	BGR → YCrCb(亮度 + 色度)
COLOR_GRAY2BGR	灰度图 → BGR
COLOR_RGBA2RGB	RGBA → RGB(去除透明度通道)

如下是对单通道的mat图像转成灰度图,之后用at函数对其像素进行改变。

相关文章:

OPENCV的AT函数

一.AT函数介绍 在 OpenCV 中&#xff0c;at&#xff08;&#xff09; 是一个模板成员函数&#xff0c;用于访问和修改矩阵或图像中特定位置的元素。它提供了一种直接且类型安全的方式来操作单个像素值&#xff0c;但需要注意其性能和类型匹配问题 AT函数是OPENCV中重要的函数…...

【走好求职第一步】求职OMG——见面课测验4

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01;博主码字不易点个关注吧~~ 1.单选题(2分) 下列不属于简历撰写技巧原则的是&#xff08; A &#xff09; A.具体性 B.相关性 C.匹配性 2.单选题(2分) 笔试的下一步一般是:( B &…...

ISO 17387——解读自动驾驶相关标准法规(LCDAS)

Intelligent transport systems — Lane change decision aid systems (LCDAS) — Performance requirements and test procedures(First edition: 2008-05-01) 原文链接&#xff1a;https://cdn.standards.iteh.ai/samples/43654/701fd49bde7b4d3db165444b7c6f0c53/ISO-17387…...

智慧零售管理中的客流统计与属性分析

智慧零售管理中的视觉分析技术应用 一、背景与需求 随着智慧零售的快速发展&#xff0c;传统零售门店面临管理效率低、安全风险高、客户体验差等问题。通过视觉分析技术&#xff0c;智慧零售管理系统可实现对门店内人员行为的实时监控与数据分析&#xff0c;从而提升运营效率…...

Ps:Adobe PDF 预设

Ps菜单&#xff1a;编辑/Adobe PDF 预设 Edit/Adobe PDF Presets 通过“Adobe PDF 预设” Adobe PDF Presets对话框&#xff0c;可以查看 Adobe PDF 预设&#xff0c;了解复杂的 PDF 设置。还可以编辑、新建、删除、载入预设&#xff0c;根据最终用途&#xff08;如高质量打印、…...

Python Excel 文件处理:openpyxl 与 pandas 库完全指南

在数据处理和分析过程中&#xff0c;Excel 文件是最常见的数据存储格式之一。Python 提供了多个库来处理 Excel 文件&#xff0c;其中 openpyxl 和 pandas 是最常用的两个库。它们各自有独特的优势&#xff0c;适用于不同的需求。本文将详细介绍如何使用这两个库来处理 Excel 文…...

九、【ESP32开发全栈指南: UDP通信服务端】

一、TCP与UDP核心差异 特性TCPUDP连接方式面向连接 (需三次握手)无连接可靠性可靠传输 (重传/排序/校验)尽力交付 (不保证可靠性)实时性延迟较高低延迟&#xff0c;实时性强传输效率协议开销大头部开销小 (仅8字节)连接类型点对点支持广播/多播资源占用高 (需维护连接状态)极低…...

靶场(二十)---靶场体会小白心得 ---jacko

老样子开局先看端口&#xff0c;先看http端口 PORT STATE SERVICE VERSION 80/tcp open http Microsoft IIS httpd 10.0 |_http-title: H2 Database Engine (redirect) | http-methods: |_ Potentially risky methods: TRACE |_http-server-header:…...

【EasyExcel】导出时添加页眉页脚

一、需求 使用 EasyExcel 导出时添加页眉页脚 二、添加页眉页脚的方法 通过配置WriteSheet或WriteTable对象来添加页眉和页脚。以下是具体实现步骤&#xff1a; 1. 创建自定义页眉页脚实现类 public class CustomFooterHandler implements SheetWriteHandler {private final…...

​​高频通信与航天电子的材料革命:猎板PCB高端压合基材技术解析​​

—聚酰亚胺/陶瓷基板在5G与航天场景的产业化应用​​ ​​一、极端环境材料体系&#xff1a;突破温域与频率极限​​ ​​聚酰亚胺基板&#xff08;PI&#xff09;的航天级稳定性​​ 猎板在卫星通信PCB中采用真空层压工艺处理聚酰亚胺基材&#xff08;Dk≈10.2&#xff09;&a…...

如何区分 “通信网络安全防护” 与 “信息安全” 的考核重点?

“通信网络安全防护” 与 “信息安全” 的考核重点可以从以下几个方面进行区分&#xff1a; 保护对象 通信网络安全防护&#xff1a;重点关注通信网络系统本身&#xff0c;包括网络基础设施&#xff0c;如路由器、交换机、基站等&#xff0c;以及网络通信链路和相关设备。同…...

Java 中 ArrayList、Vector、LinkedList 的核心区别与应用场景

Java 中 ArrayList、Vector、LinkedList 的核心区别与应用场景 引言 在 Java 集合框架体系中&#xff0c;ArrayList、Vector和LinkedList作为List接口的三大经典实现类&#xff0c;共同承载着列表数据的存储与操作功能。然而&#xff0c;由于底层数据结构设计、线程安全机制以…...

WPF技术体系与现代化样式

目录 ​​1 WPF技术架构解析​​ ​​1.1 技术演进与定位​​ ​​1.2 核心机制对比​​ ​​2 样式与资源系统​​ ​​2.1 资源(Resource)定义与作用域​​ ​​2.2 样式(Style)与触发器​​ ​​3 开发环境配置(.NET 8)​​ ​​3.1 安装流程​​ ​​3.2 项目结…...

Redis 与 MySQL 数据一致性保障方案

在高并发场景下&#xff0c;Redis 作为缓存中间件与 MySQL 数据库配合使用时&#xff0c;数据一致性是一个关键挑战。本文将详细探讨如何保障 Redis 与 MySQL 的数据一致性&#xff0c;并结合 Java 代码实现具体方案。 数据不一致的原因分析 在分布式系统中&#xff0c;Redis…...

Sentry 接口返回 Status Code 429 Too Many Requests

Sentry 是一个 开源的错误追踪&#xff08;Error Tracking&#xff09;平台&#xff0c;主要用于实时捕获和监控应用程序中的异常、错误日志&#xff0c;并帮助开发者快速定位问题根源。 &#x1f4cc; Sentry 的核心功能 自动捕获异常 自动捕捉 JavaScript、Vue、React、Node.…...

数学建模期末速成 聚类分析与判别分析

聚类分析是在不知道有多少类别的前提下&#xff0c;建立某种规则对样本或变量进行分类。判别分析是已知类别&#xff0c;在已知训练样本的前提下&#xff0c;利用训练样本得到判别函数&#xff0c;然后对未知类别的测试样本判别其类别。 聚类分析 根据样本自身的属性&#xf…...

【工具教程】PDF电子发票提取明细导出Excel表格,OFD电子发票行程单提取保存表格,具体操作流程

在企业财务管理领域&#xff0c;电子发票提取明细导出表格是不可或缺的工具。 月末财务结算时&#xff0c;财务人员需处理成百上千张电子发票&#xff0c;将发票明细导出为表格后&#xff0c;通过表格强大的数据处理功能&#xff0c;可自动分类汇总不同项目的支出金额&#xff…...

基于STM32的DHT11温湿度远程监测LCD1602显示Proteus仿真+程序+设计报告+讲解视频

DHT11温湿度远程监测proteus仿真 1. 主要功能2.仿真3. 程序4. 设计报告5. 资料清单&下载链接 基于STM32的DHT11温湿度远程监测LCD1602显示Proteus仿真设计(仿真程序设计报告讲解视频&#xff09; 仿真图proteus 8.9 程序编译器&#xff1a;keil 5 编程语言&#xff1a;C…...

分类预测 | Matlab实现CNN-BiLSTM-Attention高光谱数据分类预测

分类预测 | Matlab实现CNN-BiLSTM-Attention高光谱数据分类预测 目录 分类预测 | Matlab实现CNN-BiLSTM-Attention高光谱数据分类预测分类效果功能概述程序设计参考资料 分类效果 功能概述 该MATLAB代码实现了一个结合CNN、BiLSTM和注意力机制的高光谱数据分类预测模型&#x…...

微软推出SQL Server 2025技术预览版,深化人工智能应用集成

在Build 2025 大会上&#xff0c;微软向开发者社区开放了SQL Server 2025的测试版本。该版本的技术改进主要涵盖人工智能功能集成、系统性能优化与开发工具链升级三个维度&#xff0c;展示了数据库管理系统在智能化演进方向上的重要进展。 智能数据处理功能更新 新版本的技术亮…...

.net webapi http参数自定义绑定模型

.NET Web API 中 HTTP 参数自定义绑定模型的深度解析 在 .NET Web API 开发里&#xff0c;常规的参数绑定往往能满足大部分需求。不过&#xff0c;当遇到一些特殊情况时&#xff0c;就需要自定义将 HTTP 参数绑定到 action 特定模型参数了。接下来&#xff0c;我们就深入探讨如…...

RocketMQ入门5.3.2版本(基于java、SpringBoot操作)

一、RocketMQ概述 RocketMQ是一款由阿里巴巴于2012年开源的分布式消息中间件&#xff0c;旨在提供高吞吐量、高可靠性的消息传递服务。主要特点有&#xff1a; 灵活的可扩展性 海量消息堆积能力 支持顺序消息 支持多种消息过滤方式 支持事务消息 支持回溯消费 支持延时消…...

使用osqp求解简单二次规划问题

文章目录 一、问题描述二、数学推导1. 目标函数处理2. 约束条件处理 三、代码编写 一、问题描述 已知&#xff1a; m i n ( x 1 − 1 ) 2 ( x 2 − 2 ) 2 s . t . 0 ⩽ x 1 ⩽ 1.5 , 1 ⩽ x 2 ⩽ 2.5 min(x_1-1)^2(x_2-2)^2 \qquad s.t. \ \ 0 \leqslant x_1 \leqslant 1.5,…...

Ubuntu创建修改 Swap 文件分区的步骤——解决嵌入式开发板编译ROS2程序卡死问题

Ubuntu创建修改 Swap 文件分区的步骤——解决嵌入式开发板编译ROS2程序卡死问题 1. 问题描述2. 创建 / 修改 Swap 分区2.1 创建 Swap 文件 (推荐)2.2 使用 Swap 分区 (如果已经存在) 3. 注意事项 同步发布在个人笔记Ubuntu创建修改 Swap 文件分区的步骤——解决嵌入式开发板编译…...

【C语言】通用统计数据结构及其更新函数(最值、变化量、总和、平均数、方差等)

【C语言】通用统计数据结构及其更新函数&#xff08;最值、变化量、总和、平均数、方差等&#xff09; 更新以gitee为准&#xff1a; gitee 文章目录 通用统计数据结构更新函数附录&#xff1a;压缩字符串、大小端格式转换压缩字符串浮点数压缩Packed-ASCII字符串 大小端转换什…...

Spring AI(10)——STUDIO传输的MCP服务端

Spring AI MCP&#xff08;模型上下文协议&#xff09;服务器Starters提供了在 Spring Boot 应用程序中设置 MCP 服务器的自动配置。它支持将 MCP 服务器功能与 Spring Boot 的自动配置系统无缝集成。 本文主要演示支持STDIO传输的MCP服务器 仅支持STDIO传输的MCP服务器 导入j…...

Sklearn 机器学习 缺失值处理 填充数据列的缺失值

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 💡使用 Scikit-learn 处理数据缺失值的完整指南 在机器学习项目中,数据缺失是不可避…...

猜字符位置游戏-position gasses

import java.util.*;public class Main {/*字符猜位置游戏;每次提交只能被告知答对几个位置;根据提示答对的位置数推测出每个字符对应的正确位置;*/public static void main(String[] args) {char startChar A;int gameLength 8;List<String> ballList new ArrayList&…...

宝塔安装配置FRP

FRP&#xff08;Fast Reverse Proxy&#xff09;作为一款高性能的反向代理应用&#xff0c;能够帮助我们轻松实现内网穿透&#xff0c;将内网服务暴露到公网&#xff0c;满足远程访问、开发调试等多种需求。宝塔面板以其简洁易用的界面和强大的功能&#xff0c;成为众多站长和开…...

元器件基础学习笔记——结型场效应晶体管 (JFET)

场效应晶体管&#xff08;Field Effect Transistor&#xff0c;FET&#xff09;简称场效应管&#xff0c;是一种三端子半导体器件&#xff0c;它根据施加到其其中一个端子的电场来控制电流的流动。与双极结型晶体管 &#xff08;BJT&#xff09; 不同&#xff0c;场效应晶体管 …...