引言
遇到的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 变量中。然后,我们可以通过数组下标来访问每个通道的颜色值(蓝色、绿色和红色)。