Мне нужен способ наложения текста на изображение opencv без фактической модификации базового изображения. Например, внутри цикла while я создаю случайную точку для каждой итерации и хочу ее отобразить. Если я использую puttext, матрица перезаписывается добавленным текстом в каждом цикле.
Мои вопросы - как наложить текст на изображение opencv без изменения базовой матрицы. Я знаю, что могу использовать временную копию исходного изображения и загружать ее каждый раз. Однако я хочу избежать этого.
Моя попытка (которая не удалась) выглядит следующим образом:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
int main(int argc, char * argv[])
{
RNG rng( 0xFFFFFFFF );
cv::Mat image(480, 640, CV_8UC3, cv::Scalar(0,255,0));
int fontFace = FONT_HERSHEY_COMPLEX_SMALL;
double fontScale_small=1.5;
double fontScale_large=10.;
std::string text="X";
Point p;
while(1)
{
p.x = rng.uniform( 0, 639 );
p.y = rng.uniform( 0, 479 );
putText(image, "X", p, fontFace, 1, Scalar(0,0,255), 2);
imshow("IMAGE", image);
waitKey(1);
}
return 0;
}