OpenCV - Как добавить вейл для всех пикселей в части изображения? - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь добавить постоянное значение к прямоугольной части изображения в градациях серого.

Это то, что я пробовал:

#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 ко всем пикселям в этом диапазоне. Это возможно без использования цикла?

1 Ответ

3 голосов
/ 08 ноября 2019

Просто позвоните operator+= для подматрицы:

temp += 50;

здесь Вы перечислили матричные выражения. Один из них - A+s, где A - ваша temp подматрица, а s - скаляр - 50.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...