C++ OpenCV: 持续读取指定像素点的颜色
要持续读取某个像素点的颜色,可以使用循环来实现。
首先,你需要创建一个窗口并加载一张图像。然后,使用'cv::imshow'函数显示图像,并使用'cv::waitKey'函数等待用户按下键盘。
在循环中,使用'cv::Mat::at'函数获取指定像素点的颜色值。'cv::Mat::at'函数接受两个参数,第一个参数是像素的行坐标,第二个参数是像素的列坐标。然后,你可以使用'cv::Scalar'类型的对象来存储颜色值。
下面是一个简单的示例代码:
#include <opencv2/opencv.hpp>
int main() {
cv::Mat image = cv::imread('image.jpg');
cv::namedWindow('Window');
while (true) {
cv::imshow('Window', image);
// 读取像素点的颜色值
cv::Vec3b color = image.at<cv::Vec3b>(100, 100);
int blue = color[0];
int green = color[1];
int red = color[2];
std::cout << 'Blue: ' << blue << ', Green: ' << green << ', Red: ' << red << std::endl;
int key = cv::waitKey(1);
if (key == 27) { // 如果按下ESC键,则退出循环
break;
}
}
cv::destroyAllWindows();
return 0;
}
在这个示例中,我们读取图像中像素坐标为(100, 100)的像素点的颜色值,并将其分别存储在'blue'、'green'和'red'变量中。然后,我们将这些颜色值打印出来。
注意,这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。
原文地址: https://www.cveoy.top/t/topic/qrsD 著作权归作者所有。请勿转载和采集!