C++中的Vec3b以及at<Vec3b>方法

引言

遇到的C++方法,浅浅的记录一下。

一、

cv::Vec3b pixelColor = image.at<cv::Vec3b>(100, 200);

at<Vec3b> 是 OpenCV 中用于访问图像像素的一种方法,其中 Vec3b 表示图像的像素类型,它是一个长度为 3 的 uchar(无符号字符)数组,用于表示三通道的彩色图像。在 OpenCV 中,图像可以表示为一个 cv::Mat(矩阵)对象,通过使用 at 方法可以访问图像的像素值。使用 at<Vec3b> 可以获取彩色图像中特定位置的像素颜色值。

代码示例:

	#include <opencv2/opencv.hpp>
	int main() {
	    cv::Mat image = cv::imread("path/to/your/image.jpg"); // 读取彩色图像
	    // 获取图像某个像素点的颜色值
	    cv::Vec3b pixelColor = image.at<cv::Vec3b>(100, 200);
	    // 访问 B、G、R 三个通道的值
	    uchar blue = pixelColor[0]; // 蓝色通道
	    uchar green = pixelColor[1]; // 绿色通道
	    uchar red = pixelColor[2]; // 红色通道
	    return 0;
	}

在这个示例中,我们使用 at<Vec3b> 来获取图像在 (200, 100) 坐标处的像素值,并将其保存在 pixelColor 变量中。然后,我们可以通过数组下标来访问每个通道的颜色值(蓝色、绿色和红色)。

猜你喜欢

转载自blog.csdn.net/qq_39149619/article/details/132060073