请给出opencv中在a数组中查找与c值相同的元素所在位置的代码
时间: 2024-02-13 14:06:54 浏览: 62
含相同元素数组的查找.cpp
可以使用 OpenCV 中的 `cv::findNonZero` 函数来实现在数组中查找与给定值相同的元素,并返回这些元素的位置。具体代码如下:
```c++
#include <opencv2/opencv.hpp>
int main() {
cv::Mat a = (cv::Mat_<int>(3, 3) << 1, 2, 3, 4, 5, 6, 7, 8, 9);
int c = 5;
cv::Mat mask;
cv::compare(a, c, mask, cv::CMP_EQ);
std::vector<cv::Point> positions;
cv::findNonZero(mask, positions);
for (int i = 0; i < positions.size(); ++i) {
std::cout << "Position " << i << ": (" << positions[i].x << ", " << positions[i].y << ")" << std::endl;
}
return 0;
}
```
这里首先定义了一个大小为 3x3 的 `int` 类型矩阵 `a`,然后定义了一个整数 `c`,表示要查找的值。接着使用 `cv::compare` 函数将 `a` 和 `c` 进行比较,生成一个与 `a` 元素相同位置的 `mask` 矩阵。然后使用 `cv::findNonZero` 函数来查找 `mask` 中非零元素的位置,将这些位置保存在 `positions` 向量中。最后遍历 `positions` 向量,输出所有找到的位置。
阅读全文