ROI和圖像融合

【OpenCV入門教程之四】 ROI區域圖像疊加&初級圖像混合 全剖析

  • ROI: region of interest 感興趣區域
  • addWeighted 是常用的圖像融合函數
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv; // OpenCV中的C++類和函數都是定義在命名空間cv之內的

int main() {

    // 背景圖,logo
    Mat image = imread("../pictures/dota.jpg"); // 默認第2個參數flags=1,(flags>0 返回一個3通道的彩色圖像)
    Mat logo = imread("../pictures/logo.jpg");

    // 顯示原圖像的窗口
    namedWindow("image"); // mac標題欄不能顯示中文
    imshow("image", image);

    // ROI: region of interest 感興趣區域
    Mat imageROI = image(Rect(800, 10, logo.cols, logo.rows)); // 定義image中的ROI區域(區域大小=logo大小)
    // 或者
    // Mat imageROI = image(Range(350, 350 + logo.rows), Range(800, 800 + logo.cols));

    // 圖像混合操作
    // computes weighted sum of two arrays (dst = alpha*src1 + beta*src2 + gamma)
    // gamma 可以理解為偏置
    addWeighted(imageROI, 0.5, logo, 0.5, 0, imageROI);

    // 顯示融合后圖像的窗口
    namedWindow("image+logo");
    imshow("image+logo", image);

    // 輸出圖像
    imwrite("../pictures/dota+logo.jpg", image);

    waitKey(3000);
}

addWeighted 函數

//! computes weighted sum of two arrays (dst = alpha*src1 + beta*src2 + gamma)
CV_EXPORTS_W void addWeighted(InputArray src1, double alpha, InputArray src2,
                              double beta, double gamma, OutputArray dst, int dtype=-1);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容