opencv2.x中32位图像的像素级操作


一般来说,在opencv读取图像的时候,默认读入8位3通道的图像。但是有时候也会出现使用16位或者32位图像的时候,在这种情况下如何对其进行快速有效的读写呢?

	float* tempPic;
	for (int i = 0; i < height_frame; i++)//遍历像素点
	{
		tempPic = var_frame.ptr<float>(i);
		for (int ii = 0; ii < width_frame; ii++)
		{

			for (int iii = 0; iii < channel_frame; iii++)
			{

				*tempPic = var;
				tempPic++;
			}

		}
	}

上面var_frame为32位的图像,这样就可以完成32位图像的读写

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenCV是一个基于开源许可的计算机视觉库,它包含了许多用于图像处理和计算机视觉的函数和类。在OpenCV,Mat是一个非常重要的类,用于存储和处理图像数据。下面是关于OpenCV 4.xMat类的详细介绍: Mat类是OpenCV用于存储和处理图像数据的主要类,它是一个多维数组,可以表示单通道或多通道、灰度或彩色图像。Mat类的数据可以在内存连续或不连续存储,可以是有符号整数、无符号整数、浮点数等类型,支持大多数的像素格式。 在OpenCV,Mat是一个模板类,可以根据需要定义不同类型的Mat对象。Mat类的构造函数有多个参数,包括行数、列数、数据类型等。可以使用Mat::zeros()函数和Mat::ones()函数来创建指定大小的全零或全一矩阵。还可以使用Mat::eye()函数来创建单位矩阵。 Mat类提供了许多用于操作图像的函数和方法,例如Mat::rows()和Mat::cols()方法可以返回Mat对象的行数和列数;Mat::at()方法可以访问Mat对象的指定像素点;Mat::clone()方法可以复制一个Mat对象;Mat::convertTo()方法可以将Mat对象的数据类型转换为指定类型;Mat::reshape()方法可以改变Mat对象的形状等。 Mat类还支持与其他Mat对象之间的运算,例如加、减、乘、除等。可以使用MatExpr类来表示这些运算,例如MatExpr e = Mat1 + Mat2;表示将Mat1和Mat2进行加法运算,得到一个MatExpr对象e。还可以使用Mat::operator()方法来对Mat对象进行切片和子矩阵操作。 总之,OpenCV的Mat类是一个非常重要的类,它提供了许多用于图像处理和计算机视觉的功能和方法,可以帮助开发者更方便地进行图像处理和计算机视觉的开发工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值