Сравнить OpenCV Mat со скалярным поэлементно

у меня есть cv::Mat A, у которого есть CV_32F, Однако он содержит целочисленные значения, такие как 1,2 …. 100. Я хочу сформировать маску того же размера, что и A,

Но маска должна содержать нули, если A (x, y) не равно 5 (скажем).
Маска должна содержать единицы, если A (x, y) равно 5 (скажем).

Я хочу позже использовать его в качестве ROI.

2

Решение

// you will have a much simpler construct,
// this is just for demonstration
Mat_<float> A(3,3); mf << 1,5,5,2,5,5,1,2,3;

// now use a simple MatExpr to get a mask:
Mat mask = (A == 5);

// show results:
cerr << A << endl;
cerr << mask << endl;

------------------------------

[1, 5, 5;
2, 5, 5;
1, 2, 3]
[0, 255, 255;
0, 255, 255;
0, 0, 0]
5

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector