Я хочу получить цвет части двух изображений, которые находятся внутри треугольника, и сделать еще один треугольник в той же позиции со средним из них. Следующий код рисует треугольник на изображениях:
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main( int argc, char** argv){
Scalar color(0,0,255);
Point2f p0(50,50),p1(100,50), p2(50,100);
Mat img1 = imread("img1.png");
Mat img2 = imread("img2.png");
Mat triangle(img1.rows,img1.cols,img1.type());
triangle.setTo(color);
line(img1, p0, p1, color, 1, CV_AA, 0);
line(img1, p1, p2, color, 1, CV_AA, 0);
line(img1, p2, p0, color, 1, CV_AA, 0);
line(img2, p0, p1, color, 1, CV_AA, 0);
line(img2, p1, p2, color, 1, CV_AA, 0);
line(img2, p2, p0, color, 1, CV_AA, 0);
// if contain triangle get the color of two images
// triangle[i][j] = (img1[i][j] + img2[i][j])/2 ;
imwrite("out1.png",img1);
imwrite("out2.png",img2);
// imwrite( "triangle.png",triangle);
return 0;
}
Я хочу получить цвет каждого пикселя, содержащегося в треугольнике, который может находиться в любом месте изображения.
Кто-нибудь знает, как это сделать?