OpenCV-如何为图像的一部分中的所有像素添加Vale?

我正在尝试为灰度图像的矩形部分添加一个常量值。

这是我尝试过的:

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    cv::Mat src = imread("img.png",IMREAD_GRAYSCALE);
    Mat temp;

    temp = src(Range(10,150),Range(10,210));
    temp.setTo(50);

    imshow("src",src);

    cvWaitKey(0);
    return 0;
}

但是,这会使该区域全黑(Scalar(50))。我想将50添加到该范围内的所有像素。不用循环就可以吗?

mingdaoke 回答:OpenCV-如何为图像的一部分中的所有像素添加Vale?

只需为子矩阵调用operator+=

temp += 50;

here,您已列出矩阵表达式。其中之一是A+s,其中A是您的temp子矩阵,而s是标量-50。

本文链接:https://www.f2er.com/3141728.html

大家都在问