【OpenCV】通过迭代器获取图像的像素

news2024/9/28 9:32:30

文章目录

      • 1. 前置知识
      • 2. 通过迭代器获取图像的像素

1. 前置知识

  • 🐧 什么叫做像素?
    最小的 图像单元,每个像素可以看成图像中的一个点,它具有颜色亮度等属性。

    cv::MatOpenCV中用来处理图像数据的主要数据结构,他实质上是一个矩阵(二维数组)

  • 🍎 灰度图像
    5 * 5 的矩阵,每个数字代表一个像素的亮度。

在这里插入图片描述

  • 🍎 颜色图像
    彩色图像的每个像素是由三个数值组成的向量(RGB)。

    这里的向量指的是RGB三个颜色为一组。
    在这里插入图片描述

2. 通过迭代器获取图像的像素

  • 🍎 代码:
#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

void ModifyColorData(Mat& inputImages, Mat& outputImages, int pixel);

int main(int argc, char* argv[])
{
	// imread函数:读取一副图像
	Mat myjpg = imread("test.jpg");

	if (myjpg.empty()) {
		cout << "\n,对不起读取的图片信息有误,请重新输入!";
		return -1;
	}

	imshow("源图片效果", myjpg);

	Mat targetimages;
	targetimages.create(myjpg.rows, myjpg.cols, myjpg.type());

	// 调用自定义函数
	ModifyColorData(myjpg, targetimages, 2);

	// waitKey() 函数,延时
	waitKey(0);

	return 0;
}


// 通过迭代器获取图像的像素
void ModifyColorData(Mat& inputImages, Mat& outputImages, int pixel)
{
	outputImages = inputImages.clone();


	Mat_<Vec3b>::iterator itbegin = outputImages.begin<Vec3b>();
	Mat_<Vec3b>::iterator itend = outputImages.end<Vec3b>();

	for (; itbegin != itend; itbegin ++) {
		(*itbegin)[0] = (*itbegin)[0] / pixel * pixel + pixel / 3;
		(*itbegin)[1] = (*itbegin)[1] / pixel * pixel + pixel / 3;
		(*itbegin)[2] = (*itbegin)[2] / pixel * pixel + pixel / 3;
	}

	imshow("目标图像效果", outputImages);
}
  • 🍎 效果展示:
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

tomato靶场通关攻略

1.御剑2014找到IP地址 2.dirb扫描目录 3.再次详细扫描目录 4.访问找到的目录文件 进入antibots中 5.搜寻一会再info.php里面发现有东西 6.这个地方貌似可以进行利用 7.查看源代码发现包含include文件上传漏洞 8.网址后面跟?image../../../../../../../etc/passwd 9.既然可以查…

ceph-iscsi 手动安装过程中的一些问题记录以及解决办法

ceph-iscsi 手动安装教程 安装教程&#xff0c;建议直接看官方文档&#xff0c;猛戳传送门。官方教程是英文版的&#xff08;不知道有没有中文版&#xff09;&#xff0c;都是一些基础英语&#xff0c;问题不大&#xff0c;实在不行找个翻译软件帮帮忙&#xff0c;哈哈哈。 多…

黄力医生揭秘血栓‘成长’之路,七类人群需高度警惕!

血栓&#xff0c;这个潜伏在血液中的“隐形杀手”&#xff0c;悄无声息地阻塞着生命的通道。它如同道路上的障碍&#xff0c;一旦形成&#xff0c;便可能随着血液流向身体各处&#xff0c;引发脑梗、心梗甚至肺栓塞等严重后果。然而&#xff0c;大多数血栓在形成初期并无明显症…

CodeMeter赋能工业应用程序市场,实现安全与灵活的应用管理

面临挑战 在快速发展的工业自动化领域&#xff0c;软件保护和许可成为各行业决策者日常面临的关键问题。无论是自制还是购买&#xff0c;都需应对复杂的集成任务和多样化的用户需求。对于软件开发者来说&#xff0c;将先进的保护和许可技术&#xff08;如CodeMeter&#xff09;…

ISO 26262中的失效率计算:SN 29500-11 Expected values for contactors

目录 引言 1 基准条件下的失效率 2 失效率转换 2.1 失效率预测模型 2.2 开关速率应力系数 2.3 电压应力系数 2.3.1 电压应力系数计算模型 2.3.2 电压应力系数计算 2.4 电流应力系数 2.4.1 电流应力系数计算模型 2.4.2 电流应力系数计算 2.5 温度应力系数 2.6 环境…

Web前端 lucky-canvas【大转盘 九宫格 老虎机】抽奖插件(适用JS/TS、Vue、React、微信小程序、Uniapp和Taro)

Web前端 lucky-canvas 抽奖插件&#xff08;JS/TS、Vue、React、微信小程序、Uniapp和Taro&#xff09; 基于 JS Canvas 实现的【大转盘 & 九宫格 & 老虎机】抽奖&#xff0c;致力于为 WEB 前端提供一个功能强大且专业可靠的营销组件&#xff0c;只需要通过简单配置即…

一篇常见第三方库之以及详细使用示例教程

作者&#xff1a;郭震 我们介绍了几个常用的 Python 第三方库,包括 NumPy、Pandas、Matplotlib 和 Requests.本篇将通过一些简单的示例来演示如何有效地使用这些库,以帮助小白理解它们的基本用法.通过这些案例,你可以直观感受到这些库在日常编程中的价值. NumPy NumPy 是一个强…

计算机毕业设计选题推荐-动漫网站-动漫管理系统-Java/Python

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

虚拟化pve查看存储空间使用情况

通过命令行查看 pvesm 是 Proxmox VE 的存储管理工具&#xff0c;可以用来查看存储空间的使用情况。 pvesm status这个命令会列出所有配置的存储设备及其使用情况&#xff0c;包括总空间、已用空间和可用空间。 在 Proxmox VE (PVE) 中&#xff0c;local 和 local-lvm 是两种…

软考超详细准备之软件设计师的计算机系统题型一(上午题)

目录 考试技巧: 上午题: 下午题: 第一道数据流图 第二道数据库 第三道 UML 第四道算法题 第五道程序题 软考刷题之计算机系统 cpu 相关习题 运算器 相关习题 控制器 相关习题 计算机的基本单位: 加法: ​编辑 加减法 相关习题 数据表示 各种码制的范围 相…

AI时代的信仰是什么

信仰是人们内心深处的信念&#xff0c;是推动人类前进的驱动力。AI从几十年前的缓慢探索&#xff0c;到如今的飞速发展&#xff0c;是什么信仰在驱动这一切呢&#xff1f; 摩尔定律 聊起信仰&#xff0c;我就会想起信息时代的摩尔定律。摩尔定律是由英特尔联合创始人戈登摩尔…

微信支付开通商家转账到零钱方法【必过技巧】

自从微信支付关闭&#xff0c;企业付款到零钱后&#xff0c;改成了商家转账到零钱&#xff0c;申请开通这一功能审核很严格。想把微信商户里的钱转到个人微信上就很麻烦了。 首先看下开通条件 开通条件 暂时不支持小微商户、个体工商户。 保持正常健康交易。 转账规则 日限…

【LabVIEW学习篇 - 17】:人机交互界面设计01

文章目录 VI属性设置编辑器选项窗口外观窗口大小窗口运行时的位置执行 对话框对话框使用范例自定义对话框 VI属性设置 在LabVIEW中&#xff0c;设计人机交互界面还是很方便的&#xff0c;主要是因为LabVIEW针对行业特点提供了丰富的控件&#xff0c;使其具有极其强大的图形数据…

智能提醒助理系列-基础设施准备

本系列文章记录“智能提醒助理”wx公众号 建设历程。 一、需求背景 建设一个智能提醒小程序&#xff0c;通过公众号、短信、电话提醒用户。 提供以下能力&#xff1a; 1、节日提醒&#xff1a;生日、节日、纪念日问候祝福。 2、健康守护&#xff1a;喝水、久坐、健身、用药提…

在vscode中用virtual env的方法

vscode是非常常用的软件开发工具。我们也非常了解如何使用vscode开发python的基本方法。当然&#xff0c;vscode可以开发基本所有编程语言。真的是又大又全又好用。 那么为什么要在vscode里面使用virtual env呢&#xff1f;因为python开发会遇到包管理的问题。而virtual env可…

个人博客新引导主页html源码

源码介绍 个人博客新引导主页html源码&#xff0c;随机背景&#xff0c;字体颜色变换&#xff0c;记事本打开自己动手修改一下就可以啦。 效果预览 源码获取 个人博客新引导主页html源码

【uni-app】通过 HBuilderX 创建 uni-app vue3项目

1.下载 HbuilderX 编辑器 访问 HBuilderX 的官网首页 https://www.dcloud.io/hbuilderx.html 点击首页的 DOWNLOAD 按钮 选择下载 正式版 -> App 开发版 2. 安装 HBuilderX 将下载的 zip包 进行解压缩 将解压之后的文件夹&#xff0c;存放到纯英文的目录中&#xff08;且…

如何选择合适的PLC工业网关?天拓四方

在现代工业自动化领域&#xff0c;PLC工业网关在提升生产效率、确保产品质量、增强系统可靠性等方面发挥着重要作用。为了满足不同工业应用场景的需求&#xff0c;如何选择合适的PLC工业网关成为了一个关键问题。以下是选择PLC工业网关时应考虑的几个重要因素&#xff1a; 兼容…

【ACM独立出版|EI快检索-高录用|IEEE Fellow支持】2024年数字经济与计算机科学国际学术会议(DECS2024)

【ACM独立出版&#xff5c;EI快检索-高录用&#xff5c;IEEE Fellow支持】 2024年数字经济与计算机科学国际学术会议&#xff08;DECS2024&#xff09; *ACM独立出版&#xff0c;快检索&#xff0c;高录用 *见刊后1个月左右完成EI&Scopus检索 *国内211大学、世界QS名校…

【路径规划】在MATLAB中使用粒子群优化(PSO)进行最优移动机器人路径规划

摘要 本文介绍了使用粒子群优化&#xff08;Particle Swarm Optimization, PSO&#xff09;算法实现移动机器人的路径规划。PSO是一种基于群体智能的优化算法&#xff0c;通过模拟粒子群体在搜索空间中的迭代更新&#xff0c;找到全局最优路径。本文通过MATLAB仿真展示了PSO在…