图像混合

风流意气都作罢 提交于 2020-02-08 17:09:12

图像混合:+

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
 Mat src1, src2, dst;
 src1 = imread("E:/opencv/0/0.jpg");
 src2 = imread("E:/opencv/0/2.jpg");
 if (!src1.data) {
  printf("could not load image1...\n");
  return -1;
 }
 if (!src2.data) {
  printf("could not load image2...\n");
  return -1;
 }
 double alpha = 0.3;
 if (src1.rows == src2.rows && src1.cols == src2.cols && src1.type() == src2.type()) {
  addWeighted(src1, alpha, src2, (1.0 - alpha), 0.0, dst);
  imshow("onput image", dst);
 }
else {
  printf("could not blend image ,the size of image is not same");
  return -1;
 }
 namedWindow("input image1", CV_WINDOW_AUTOSIZE);
 imshow("input image1",src1);
 namedWindow("input image2", CV_WINDOW_AUTOSIZE);
 imshow("input image2",src2);
 waitKey(0);
 return 0;
}

图片图片

相乘:

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
 Mat src1, src2, dst;
 src1 = imread("E:/opencv/0/0.jpg");
 src2 = imread("E:/opencv/0/2.jpg");
 if (!src1.data) {
  printf("could not load image1...\n");
  return -1;
 }
 if (!src2.data) {
  printf("could not load image2...\n");
  return -1;
 }
 double alpha = 0.3;
 if (src1.rows == src2.rows && src1.cols == src2.cols && src1.type() == src2.type()) {
  //addWeighted(src1, alpha, src2, (1.0 - alpha), 0.0, dst);
  multiply(src1,src2,dst,1.0);
  imshow("onput image", dst);
 }
 else {
  printf("could not blend image ,the size of image is not same");
  return - 1;
 }
 namedWindow("input image1", CV_WINDOW_AUTOSIZE);
 imshow("input image1",src1);
 namedWindow("input image2", CV_WINDOW_AUTOSIZE);
 imshow("input image2",src2);
 waitKey(0);
 return 0;
}

图片

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!