要持续读取某个像素点的颜色,可以使用循环来实现。

首先,你需要创建一个窗口并加载一张图像。然后,使用'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'变量中。然后,我们将这些颜色值打印出来。

注意,这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。

C++ OpenCV: 持续读取指定像素点的颜色

原文地址: https://www.cveoy.top/t/topic/qrsD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录