Найти максимальную матрицу и минимальную матрицу из заданных матриц

#c #opencv #matrix

#c #opencv #матрица

Вопрос:

Я новичок в c и opencv. У меня есть 3 матрицы, из этих трех матриц я хочу найти максимальную матрицу и минимальную матрицу для примера

A = [1 2 3] B = [2 4 6] c = [4 8 12] тогда A — минимум, а C — матрица с высокими скалярными значениями, есть ли какой-либо способ найти ее такой, какая она есть, любая помощь приветствуется.

С другой стороны, я пробовал следующим образом, но это неверно.

 Mat A=imread("") // intialise the mat 1X3
Mat B=  //intialise the mat 1X3
if (A>B) printf("Matrix A greater than B") // this line encounter the Error that is not the correct way of doing that.
 

Комментарии:

1. Когда именно вы считаете, что матрица больше другой матрицы?

2. @Нико Шертлер я не знаю точного способа сделать это, но мне нужно найти небольшую матрицу

3. Может быть, сравнить средние значения?

4. Но перед этим вы должны хотя бы посмотреть документацию о том, как перебирать пиксели Opencv mat!

Ответ №1:

Привет, в OpenCV для вас реализованы функции cv :: min и max! Вот пример использования! Надеюсь, это поможет!

 int _tmain(int argc, _TCHAR* argv[])
{
    //Fill Random Numbers in 3 Mats
    Mat mTest(5,5,CV_8UC3),mMin,mMax;   
    randn(mTest,Scalar::all(125),Scalar::all(100));

    Mat mTest_3[3];
    split(mTest, mTest_3);

    //Find Min and max from 3 Mats!

    mMin=cv::min(mTest_3[0],cv::min(mTest_3[1],mTest_3[2]));
    mMax=cv::max(mTest_3[0],cv::max(mTest_3[1],mTest_3[2]));

    cout<< "Inputs 1: n"<<mTest_3[0]<<"n";
    cout<< "Inputs 2: n"<<mTest_3[1]<<"n";
    cout<< "Inputs 3: n"<<mTest_3[2]<<"n";

    cout<< "Min : n"<<mMin<<"n";
    cout<< "Max : n"<<mMax<<"n";

}