#include <opencv2/opencv.hpp>
#include<opencv2/core/core.hpp>
#include"opencv2/highgui/highgui.hpp"
#include<opencv2/imgproc/imgproc.hpp>
#include<iostream>
using namespace std;
using namespace cv;
bool ROI_AddImage();
bool LinearBlending();
bool ROI_LinearBlending();
int main()
{
system("color 5E");
if (ROI_AddImage() && LinearBlending() && ROI_LinearBlending())
{
cout << endl << "運行成功,得出影像:)";
}
waitKey(0);
return 0;
}
bool ROI_AddImage()
{
Mat srcImage1 = imread("C:/Users/離子鍵/source/repos/Project8/1.jpg");
Mat logoImage = imread("C:/Users/離子鍵/source/repos/Project8/3.jpg");
if (!srcImage1.data) { printf("讀取srcImage1錯誤!\n"); return false; }
if (!logoImage.data) { printf("讀取logoImage錯誤!\n"); return false; }
Mat imageROI = srcImage1(Rect(0, 0, logoImage.cols, logoImage.rows));
Mat mask = imread("C:/Users/離子鍵/source/repos/Project8/3.jpg", 0);
logoImage.copyTo(imageROI,mask);
namedWindow("<1>利用ROI實作影像疊加示例視窗");
imshow("<1>利用ROI實作影像疊加示例視窗", srcImage1);
return true;
}
bool LinearBlending()
{
double alphaValue = 0.5;
double betaValue;
Mat srcImage2, srcImage3, dstImage;
srcImage2 = imread("C:/Users/離子鍵/source/repos/Project8/1.jpg");
srcImage3 = imread("C:/Users/離子鍵/source/repos/Project8/3.jpg");
if (!srcImage2.data) { printf("讀取srcImage2錯誤!\n"); return false; }
if (!srcImage3.data) { printf("讀取srcImage3錯誤!\n"); return false; }
betaValue = (1.0-alphaValue);
addWeighted(srcImage2, alphaValue, srcImage3, betaValue, 0.0, dstImage);
namedWindow("<2>線性混合示例視窗[原圖]", 1);
imshow("<2>線性混合示例視窗[原圖]",srcImage2);
namedWindow("<3>線性混合示例視窗[效果圖]", 1);
imshow("<3>線性混合示例視窗[效果圖]", dstImage);
return true;
}
bool ROI_LinearBlending()
{
Mat srcImage4 = imread("C:/Users/離子鍵/source/repos/Project8/1.jpg");
Mat logoImage = imread("C:/Users/離子鍵/source/repos/Project8/3.jpg");
if (!srcImage4.data) { printf("讀取srcImage4錯誤!\n"); return false; }
if (!logoImage.data) { printf("讀取logoImage錯誤!\n"); return false; }
Mat imageROI;
imageROI = srcImage4(Rect(0, 0, logoImage.cols, logoImage.rows));
addWeighted(imageROI, 0.5, logoImage, 0.3,0., imageROI);
namedWindow("<4>區域線型圖象混合示例視窗");
imshow("<4>區域線型圖象混合示例視窗",srcImage4);
return true;
}
運行結果如下:



轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/336332.html
標籤:其他
上一篇:Ubuntu下編譯opencv
