1. 程式人生 > >《OpenCV3程式設計入門》——3.1.9 綜合示例程式:影象的載入、顯示與輸出

《OpenCV3程式設計入門》——3.1.9 綜合示例程式:影象的載入、顯示與輸出

書中關於影象的載入、顯示與輸出的綜合應用。有些細節知識將在本部落格後續更新。

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;

int main()
{
    //-----------------------------------【一、影象的載入和顯示】---------------------------------
    //	描述:以下三行程式碼用於完成影象的載入和顯示
    //--------------------------------------------------------------------------------------------------
    Mat girl = imread("girl.jpg"); //載入影象到Mat
    namedWindow("【1】動漫圖"); //建立一個名為 "【1】動漫圖"的視窗  
    imshow("【1】動漫圖", girl);//顯示名為 "【1】動漫圖"的視窗  

    //-----------------------------------【二、初級影象混合】--------------------------------------
    //	描述:二、初級影象混合
    //--------------------------------------------------------------------------------------------------
    //載入圖片
    Mat image = imread("dota.jpg");
    Mat logo = imread("dota_logo.jpg");

    //載入後先顯示
    namedWindow("【2】原畫圖");
    imshow("【2】原畫圖", image);

    namedWindow("【3】logo圖",1);
    imshow("【3】logo圖", logo);

    // 定義一個Mat型別,用於存放,影象的ROI
    Mat imageROI;
    //方法一
    imageROI = image(Rect(800, 350, logo.cols, logo.rows));
    //方法二
    //imageROI= image(Range(350,350+logo.rows),Range(800,800+logo.cols));

    // 將logo加到原圖上
    addWeighted(imageROI, 0.5, logo, 0.3, 0., imageROI);

    //顯示結果
    namedWindow("【4】原畫+logo圖");
    imshow("【4】原畫+logo圖", image);

    //-----------------------------------【三、影象的輸出】--------------------------------------
    //	描述:將一個Mat影象輸出到影象檔案
    //-----------------------------------------------------------------------------------------------
    //輸出一張jpg圖片到工程目錄下
    imwrite("由imwrite生成的圖片.jpg", image);

    waitKey(0);

    return 0;
}

 執行結果:

動漫顯示圖
logo原圖

                                         dota原圖

                                    dota原圖+logo圖