Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用openCV更改图像每个像素的颜色_C++_Opencv - Fatal编程技术网

C++ 如何使用openCV更改图像每个像素的颜色

C++ 如何使用openCV更改图像每个像素的颜色,c++,opencv,C++,Opencv,我是OpenCV的新手。我有一幅图像,我想要的是用任何单一颜色改变图像中每个像素的颜色。 我找到了那段代码,但当我运行这部分代码时,会生成一个异常 for (i = 0;i < img1.rows;i++) { for (j = 0;j < img1.cols;j++) { img1.at<Vec3b>(i, j) = Vec3b(255, 105, 240); } } for(i=0;i

我是OpenCV的新手。我有一幅图像,我想要的是用任何单一颜色改变图像中每个像素的颜色。 我找到了那段代码,但当我运行这部分代码时,会生成一个异常

for (i = 0;i < img1.rows;i++) {
    for (j = 0;j < img1.cols;j++) {
        img1.at<Vec3b>(i, j) = Vec3b(255, 105, 240);
    }
}
for(i=0;i
谁能告诉我解决办法吗。
或者我发现这需要很多时间进行转换,所以如果他们有其他方法,请告诉我。

要使用单色填充图像,请使用with CV_FILLED参数

(出现异常可能有一些原因-图像未创建、像素格式错误等-很难用给定信息诊断问题)

您可以使用选择roi,然后为其指定值

void main()
{
    cv::Mat img = cv::Mat::ones(5, 5, CV_8UC3);
    img({2, 4}, {2, 4}) = cv::Vec3b(7, 8, 9);
    cout << img;
}

你是认真的吗?你读过文档了吗?我没有投反对票,但你不应该抱怨某些代码给了你一个错误,但没有发布错误,只发布一个不完整的片段,没有给出它发生的原因的上下文。这在帮助中心中被突出地提到,关于获得错误帮助。然后你把问题改成其他的问题——“或者我发现这需要很多时间来转换”——当问题应该是单一焦点的时候。
[  1,   0,   0,   1,   0,   0,   1,   0,   0,   1,   0,   0,   1,   0,   0;
   1,   0,   0,   1,   0,   0,   1,   0,   0,   1,   0,   0,   1,   0,   0;
   1,   0,   0,   1,   0,   0,   7,   8,   9,   7,   8,   9,   1,   0,   0;
   1,   0,   0,   1,   0,   0,   7,   8,   9,   7,   8,   9,   1,   0,   0;
   1,   0,   0,   1,   0,   0,   1,   0,   0,   1,   0,   0,   1,   0,   0]
// Make a 3 channel image
cv::Mat img(480,640,CV_8UC3);

// Fill entire image with cyan (blue and green)
img = cv::Scalar(255,255,0);