В opencv c ++ я пытаюсь выяснить, как вычислить евклидово расстояние между точками i, j и всеми точками в ядре 3×3. Это делается для создания контрастной карты значимости из цветового пространства Luv. Я также попробовал функцию нормы безрезультатно. Я очень смущен тем, как решить эту проблему, и был бы признателен за некоторые отзывы.
Mat tmp1 = MeanShift_Luv.clone();
int big_theta = 3; // kernel size / neighborhood to perform convolution on
Mat gradient_1 = Mat::zeros(tmp1.rows, tmp1.cols, CV_64FC3);
for (int i = 0; i < tmp1.rows; i++){
for (int j = 0; j < tmp1.cols; j++){
double dist = 0;
for (int m = -big_theta / 2; m < big_theta / 2; m++){
for(int n = -big_theta /2; n < big_theta / 2; n++){
if (m == 0 || n == 0) continue;
if (i + m < 0 || i + m >= tmp1.rows) continue;
if (j + n < 0 || j + n >= tmp1.cols) continue;
/* unsure what to do at this part
Point a(i,j);
Point b(i+m, j+n);
*/
}
}
gradient_1.at<Vec3d>(i,j) = dist;
}
Задача ещё не решена.