C++怎么在一幅灰度图像中找到一个已知像素值的所有坐标,并把坐标放到vector容器中中返回
时间: 2024-05-08 19:19:15 浏览: 97
C++ 灰度图像处理
4星 · 用户满意度95%
您可以使用OpenCV的findNonZero函数来实现这个目标。例如:
```c++
#include <opencv2/opencv.hpp>
#include <vector>
using namespace cv;
using namespace std;
vector<Point> findPixelLocations(Mat image, uchar pixelValue) {
Mat mask = (image == pixelValue); // 创建像素值相等的掩码
vector<Point> locations; // 存储像素值相等的所有坐标
findNonZero(mask, locations); // 找到所有非零坐标
return locations;
}
```
然后你可以将你的图像和像素值作为参数传递给这个函数来找到所需的所有坐标:
```c++
Mat image = imread("grayImage.png", IMREAD_GRAYSCALE);
uchar pixelValue = 128;
vector<Point> locations = findPixelLocations(image, pixelValue);
```
这里我们假定你的灰度图像是来自一个名为"grayImage.png"的PNG文件。
阅读全文