• Как правильно построить структуру программы?

    Поиграйтесь с cv::rectangle, cv::addWeighted и cv::putText.
    Вот код прямиком из рабочего проекта, рисует полупрозрачный прямоугольник и пишет строки текста:

    cv::Mat writeOnImage(const cv::Mat& source, const std::vector<std::string>& lines, int width)
    {
    	auto rect = source.clone();
    	cv::rectangle(rect, { 10, 10 }, { width, 20 + 50 * static_cast<int>(lines.size()) }, cv::Scalar(0, 0, 0), cv::FILLED);
    
    	auto result = cv::Mat();
    	cv::addWeighted(source, 0.6, rect, 0.4, 0.0, result);
    
    	for (size_t i = 0; i < lines.size(); ++i) {
    		cv::putText(result, lines[i], { 20, 50 + 50 * static_cast<int>(i) }, cv::FONT_HERSHEY_PLAIN, 3, cv::Scalar(10, 255, 255), 3, cv::LINE_8);
    	}
    
    	return result;
    }
    Ответ написан
    1 комментарий