【opencv15】cv::Mat类单独访问数组元素

1.利用at<>()成员函数访问数组元素

最基础的直接访问手段是通过模板成员函数at<>(),对数组元素进行访问。因为是模板函数,所以该函数可以接受各种类型和维度的参数。使用该函数访问数组元素的例子如下:

#include "opencv2/opencv.hpp"
#include <iostream>
using namespace cv;

int main()
{
	
	Mat m_1 = cv::Mat::eye(10,10,CV_32FC1);
	Mat m_2 = cv::Mat::eye(3, 3, CV_32FC3);

	int sz[] = { 3, 3, 3 };
	Mat m_3(3, sz, CV_32FC3, Scalar::all(0));

//part one
	printf(
		"Float Element (3,3) is %f\n",
		m_1.at<float>(3, 3)
		);


//part two	
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			printf(
				"Float Element (x,y)=(%d,%d) is (C0,C1,C2)=(%f,%f,%f)\n",
				i,
				j,	
				m_2.at<cv::Vec3f>(i, j)[0],
				m_2.at<cv::Vec3f>(i, j)[1],
				m_2.at<cv::Vec3f>(i, j)[2]

			);
		}
	}
	


//part three
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			for (int k = 0; k < 3; k++)
			{
				printf(
					"Float Element (x,y,z)=(%d,%d,%d) is (C0,C1,C2)=(%f)\n",
					i,
					j,
					k,
					m_3.at<cv::Vec3f>(i, j,k)[0],
					m_3.at<cv::Vec3f>(i, j,k)[1],
					m_3.at<cv::Vec3f>(i, j,k)[2]
				);
			}

		}
	}
	
	

	getchar();

	return 0;


}

代码输出结果

结果分析:上述代码有三个部分。
部分一:访问的是二维

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuanCruise

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值