opencv - умножение изображений
привет япытаюсь немного поиграть с матом класса. Я хочу сделать элемент продукта мудрым между двумя изображениями, портом c ++ / opencv в MATLABimmultiply.
Это мой код:
#include
#include
#include "opencv2/imgproc/imgproc.hpp"
#include
using namespace cv;
using namespace std;
Mat imgA, imgB;
Mat imgAB;
Mat product;
void printMinMax(Mat m, string s) {
double minVal;
double maxVal;
Point minLoc;
Point maxLoc;
minMaxLoc( m, &minVal, &maxVal, &minLoc, &maxLoc );
cout < "min val in " < s < ": " < minVal < endl;
cout < "max val in " < s < ": " < maxVal < endl;
}
int main(int /*argc*/, char** /*argv*/) {
cout < "OpenCV version: " < CV_MAJOR_VERSION < " " < CV_MINOR_VERSION < endl;
imgA = imread("test1.jpg");
cout < "original image size: " < imgA.rows < " " < imgA.cols < endl;
cout < "original type: " < imgA.type() < endl;
cvtColor(imgA, imgA, CV_BGR2GRAY);
printMinMax(imgA, "imgA");
imgB = imread("test2.jpg");
cout < "original image size: " < imgB.rows < " " < imgB.cols < endl;
cout < "original type: " < imgB.type() < endl;
cvtColor(imgB, imgB, CV_BGR2GRAY);
printMinMax(imgB, "imgB");
namedWindow("originals", CV_WINDOW_AUTOSIZE);
namedWindow("product", CV_WINDOW_AUTOSIZE);
imgAB = Mat( max(imgA.rows,imgB.rows), imgA.cols+imgB.cols, imgA.type());
imgA.copyTo(imgAB(Rect(0, 0, imgA.cols, imgA.rows)));
imgB.copyTo(imgAB(Rect(imgA.cols, 0, imgB.cols, imgB.rows)));
product = imgA.mul(imgB);
printMinMax(product, "product");
while( true )
{
char c = (char)waitKey(10);
if( c == 27 )
{ break; }
imshow( "originals", imgAB );
imshow( "product", product );
}
return 0;
}