** Я пытаюсь сделать изображение из 2-х изображений (50% Img1 + 50% от IMG 2), но результат всегда серое изображение **OpenCV-C++ сумма изображение
#pragma once
#define _CRT_SECURE_NO_DEPRECATE
#include <iostream>
#include <cv.h>
#include <highgui.h>
#include <math.h>
void help()
{
std::cout << "Not enough parameters!" << std::endl;
system("exit");
}
int main(int argc, char ** argv){
if (argc < 3)
{
help();
system("pause");
exit(-1);
}
cv::Mat image1 = cv::imread(argv[1]);
cv::Mat image2 = cv::imread(argv[2]);
// Здесь я создать новый образ ... структура
cv::Mat new_img(image1.rows, image1.cols, CV_8UC1);
for (int i = 0; i < image1.rows; i++)
{
for (int j = 0; j < image1.cols; j++)
{
// Здесь я заполнить новое изображение с суммой другой 2
new_img.at<uchar>(cv::Point(j, i)) =
(image1.at<cv::Vec<uchar, 3>>(cv::Point(j, i)).val[0]/2 + image2.at<cv::Vec<uchar, 3>>(cv::Point(j, i)).val[0])/2 +
(image1.at<cv::Vec<uchar, 3>>(cv::Point(j, i)).val[1]/2 + image2.at<cv::Vec<uchar, 3>>(cv::Point(j, i)).val[1]/2) +
(image1.at<cv::Vec<uchar, 3>>(cv::Point(j, i)).val[2]/2 + image2.at<cv::Vec<uchar, 3>>(cv::Point(j, i)).val[2]/2);
}
}
cv::namedWindow("Original1", 0);
cv::imshow("Original1", image1);
cv::namedWindow("Original2", 0);
cv::imshow("Original2", image2);
cv::namedWindow("Suprapuse", 0);
cv::imshow("Suprapuse", new_img);
cv::waitKey(0);
int a = 0;
return 0;
}
http://docs.opencv.org/modules/core/doc/operations_on_arrays.html#addweighted – berak
сначала вам нужно включить правильный заголовок! – Engine