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

文章目录

      • [1. 前置知识](#1. 前置知识)
      • [2. 通过迭代器获取图像的像素](#2. 通过迭代器获取图像的像素)

1. 前置知识

  • 🐧 什么叫做像素?

    最小的 图像单元,每个像素可以看成图像中的一个点,它具有颜色、亮度等属性。

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

  • 🍎 灰度图像

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

  • 🍎 颜色图像

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

    这里的向量指的是RGB三个颜色为一组。

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

  • 🍎 代码:
cpp 复制代码
#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);
}
  • 🍎 效果展示:
相关推荐
sali-tec3 天前
C# 基于OpenCv的视觉工作流-章27-图像分割
图像处理·人工智能·opencv·算法·计算机视觉
saoys3 天前
Opencv 学习笔记:腐蚀操作 + 轮廓标记 + 分水岭分割
笔记·opencv·学习
saoys3 天前
Opencv 学习笔记:距离变换(DIST_L1 算法实战 + 归一化)
笔记·opencv·学习
guygg883 天前
图像匹配技术:相关匹配、Hausdorff距离匹配与基于距离变换的Hausdorff距离匹配
图像处理·opencv·计算机视觉
AI科技星3 天前
物理世界的几何建构:论统一场论的本体论革命与概念生成
人工智能·opencv·线性代数·算法·矩阵
fie88893 天前
基于Matlab实现的指纹识别系统流程
opencv·计算机视觉·matlab
sali-tec4 天前
C# 基于OpenCv的视觉工作流-章26-图像拼接
图像处理·人工智能·opencv·算法·计算机视觉
智驱力人工智能4 天前
机场鸟类活动智能监测 守护航空安全的精准工程实践 飞鸟检测 机场鸟击预防AI预警系统方案 机场停机坪鸟类干扰实时监测机场航站楼鸟击预警
人工智能·opencv·算法·安全·yolo·目标检测·边缘计算
Σίσυφος19004 天前
OpenCV 之双线性插值
人工智能·opencv·计算机视觉
格林威4 天前
Baumer相机金属粉末铺粉均匀性评估:用于增材制造过程监控的 7 个实用技巧,附 OpenCV+Halcon 实战代码!
人工智能·opencv·视觉检测·制造·工业相机·智能相机·堡盟相机