Mat的lambda方式像素高效遍历(C++11)

Mat的lambda方式像素高效遍历(C++11)


文章目录

  • Mat的lambda方式像素高效遍历(C++11)
  • 前言
  • 一、Mat的lambda方式像素高效遍历
  • 二、代码实现
  • 总结


前言

图像遍历是图像处理中的经典操作,快速高效的进行像素遍历对性能的提升至关重要。


一、Mat的lambda方式像素高效遍历

OpenCV4开始支持,通过Mat的forEach方式结合C++11 lambda表达式,实现对Mat对象快速像素遍历。语法如下:

void cv::Mat::forEach(const Functor & operation)
// 其中operation是一个C++11 lambda表达式,同时也是一个匿名的C++函数。

二、代码实现

#include <iostream>
#include <opencv.hpp>
using namespace std;

int main()
{
	cv::Mat src = cv::imread("F:/work_study/algorithm_demo/lambda.jpg");
	if (src.empty())
	{
		cout << "Image Empty" << endl;
		return -1;
	}

	double start = (double)cv::getTickCount();
	// foreach方式遍历图像
	src.forEach<cv::Vec3b>([](cv::Vec3b& p,const int* position)->void {
		p[0] = 255 - p[0];
		p[1] = 255 - p[1];
		p[2] = 255 - p[2];
		});

	cout <<(((double)cv::getTickCount() - start)) / cv::getTickFrequency()<< endl;
	cv::imwrite("dst.jpg", src);
	cv::waitKey(0);
	return 0;
}

src
dst
result


总结

本文主要介绍了一种新的opencv支持的基于lambda像素遍历方式,快速高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/687551.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

建构信任基石:揭秘Web3的去中心化信任体系

在传统的互联网时代&#xff0c;信任往往建立在中心化的机构和第三方平台之上&#xff0c;而这种中心化的信任体系往往面临着数据泄露、信息滥用等问题。然而&#xff0c;随着区块链技术的发展&#xff0c;Web3时代正在向我们展示一种全新的信任体系&#xff0c;即去中心化的信…

随到随学|2024泰迪智能科技暑期在线项目/集训营

在数字化转型的浪潮中&#xff0c;大数据和人工智能等前沿技术已成为推动经济发展和科技进步的关键动力。当前&#xff0c;全球各行各业都在积极推进数字化转型&#xff0c;不仅为经济增长注入新活力&#xff0c;也对人才市场结构产生了深刻影响&#xff0c;尤其是对数字化人才…

vCenter7.0安装部署

vCenter7.0安装部署 一、准备环境二、创建新的虚拟机1.创建虚拟机2.第3-5步可直接默认安装并同意许可协议。3.其他设置4.第一阶段直接点完成即可 三、进入第二阶段安装&#xff08;输入ip&#xff1a;5480进入安装界面&#xff09; 一、准备环境 准备一台exsi&#xff0c;并登…

《数学学习与研究》投稿难度大吗?

《数学学习与研究》杂志的投稿难度相对适中。 一方面&#xff0c;它作为一本有一定影响力的数学专业期刊&#xff0c;对稿件的质量有一定要求。论文需要具备一定的创新性、科学性和逻辑性&#xff0c;研究内容要具有一定的价值和深度。 另一方面&#xff0c;与一些核心期刊相…

Lab_ Exploiting a mass assignment vulnerability_实验室:利用大规模分配漏洞

使用 wiener:peter 登录 点击轻量级“l33t”皮夹克产品并将其添加到购物篮中。 去到购物车&#xff0c;点击下单&#xff0c;提示Not enough store credit for this purchase&#xff08;没有足够的商店信用用于此次购买&#xff09; 在Burp的HTTP历史记录中发现了API的请求…

QT creator c动态链接库的创建与调用

QT creator c动态链接库的创建与调用 QT5.15.2 1.创建dll项目 确保两类型选择正确 2.选择MinGW 64-bit 3.点击完成 pro文件参考&#xff1a; QT - guiTEMPLATE lib DEFINES QT_DLL_DEMO_LIBRARYCONFIG c17# You can make your code fail to compile if it uses deprecat…

网线制作(双绞线+水晶头)——T568B标准

参考视频&#xff1a;https://www.bilibili.com/video/BV1KQ4y1i7zP/ 1、使用剥线器 2、将线捋顺、排序、剪掉牵引线 记忆技巧 1.线序颜色整体是一浅一深 2.颜色顺序是黄、蓝、绿、棕 一个黄种人、从上向下看&#xff0c;分别看到的是蓝天、青草(绿)、泥土(棕色) 3.中间两根浅…

抗锯齿技术在AI绘画中的应用与意义

随着人工智能技术的飞速发展&#xff0c;AI绘画逐渐成为艺术创作领域的一大热点。然而&#xff0c;在数字绘画的过程中&#xff0c;画面的锯齿效应一直是影响作品质量的一个重要因素。抗锯齿技术的应用&#xff0c;有效地解决了这一问题&#xff0c;使得AI绘画作品更加细腻、真…

自然语言处理(NLP)—— 主题建模

1. 主题建模的概念 主题建模&#xff08;Topic Modeling&#xff09;是一种用于发现文档集合&#xff08;语料库&#xff09;中的主题&#xff08;或称为主题、议题、概念&#xff09;的统计模型。在自然语言处理和文本挖掘领域&#xff0c;主题建模是理解和提取大量文本数据隐…

小程序 UI 风格魅力非凡

小程序 UI 风格魅力非凡

MK米客方德 SD NAND与文件系统:技术解析与应用指南

随着数字存储技术的飞速发展&#xff0c;SD NAND(贴片式T卡&#xff09;已成为我们日常生活中不可或缺的存储工具。我们将深入探讨SD NAND的文件系统&#xff0c;特别是SD 3.0协议支持的文件系统类型&#xff0c;以及它们在实际应用中的作用和用户可能遇到的问题。 MK米客方德的…

跨境反向海淘系统:业务流程解析与未来发展展望

随着全球化的深入发展和互联网技术的飞速进步&#xff0c;跨境购物已经成为越来越多消费者日常生活中的一部分。在这个过程中&#xff0c;反向海淘系统以其独特的优势&#xff0c;逐渐崭露头角&#xff0c;成为跨境电商领域的新星。作为一名在跨境反向海淘系统业务中耕耘了10年…

Python中的pathlib和Path(面向对象的文件系统路径操作库)

1. pathlib库介绍 1.1 pathlib和pathlib.Path pathlib是Python标准库中的一个模块&#xff0c;它提供了一组面向对象的文件系统路径操作。在Python早期版本中&#xff0c;文件和目录路径通常使用字符串来处理&#xff0c;或者使用os.path模块中的函数来执行操作&#xff0c;如…

域内攻击 -----> Kerberoasting

在域中&#xff0c;能拿到账户信息得攻击基本上有四个 域内用户枚举域内密码喷洒KerberoastingAS-REP Roasting 对于AS-REP Roasting&#xff0c;我们下一篇文章讲&#xff0c;而前两个&#xff0c;请参考我以前域内横向移动得文章。 那么我们今天就来聊聊Kerberoasting 1.S…

CodeFlying:一个可以用自然语言开发软件的AI平台

前言&#xff1a; AI可以生成文字、图片、代码、甚至视频&#xff0c;但是你听说过AI可以直接生成软件的吗&#xff1f;码上飞CodeFlying是一个可以用自然语言开发软件的平台&#xff0c;彻底改变软件开发的方式&#xff0c;让所有人都可以成为应用的创作者&#xff01; 你最关…

基于ChatGLM3的本地问答机器人部署流程

基于ChatGLM3的本地问答机器人部署流程 前言一、确定文件结构1.新建文件夹储存本地模型2.下载源码和模型 二、Anaconda环境搭建1.创建anaconda环境2.安装相关库3.设置本地模型路径4.启动 三、构建本地知识库1.下载并安装postgresql2.安装c库3.配置向量插件 四、线上运行五、 全…

计算机网络-NAT配置与ACL

目录 一、ACL 1、ACL概述 2、ACL的作用 3、ACL的分类 4、ACL的配置格式 二、NAT 1、NAT概述 2、NAT分类 2.1 、 静态NAT 2.2 、 动态NAT 3、NAT的功能 4、NAT的工作原理 三、NAT配置 1、静态NAT配置 2、动态NAT配置 四、总结 一、ACL 1、ACL概述 ACL&#xff…

springboot文具销售管理系统-计算机毕业设计源码70886

摘要 从上世纪末到目前&#xff0c;计算机科学技术已经被尝试应用在各个职业各个领域&#xff0c;在商业贸易上&#xff0c;使用比重较高。计算机科学技术包括软件技术、网络技术、硬件技术等&#xff0c;越来越多的商家使用计算机来进行营业&#xff0c;出售、收购、宣传各类商…

LinkedList详解(含数据结构动画演示)

目录 LinkedList详解1、LinkedList的继承体系2、LinkedList的构造函数3、LinkedList的add(E e)方法4、LinkedList的Node节点5、双向链表的概念和Node节点的详细解释6、LinkedList的add(E e)方法梳理7、LinkedList的getXXX方法8、LinkedList的removeXXX方法①、removeFirst()方法…

【Java毕业设计】基于JavaWeb的旅游论坛管理系统

文章目录 摘 要目 录1 概述1.1 研究背景及意义1.2 国内外研究现状1.3 拟研究内容1.4 系统开发技术1.4.1 Java编程语言1.4.2 vue技术1.4.3 MySQL数据库1.4.4 B/S结构1.4.5 Spring Boot框架 2 系统需求分析2.1 可行性分析2.2 系统流程2.2.1 操作流程2.2.2 登录流程2.2.3 删除信息…