使用 C++ opencv 在黑白图像中查找对象的中心点

Find the center point of an object in a black-white image using C++ opencv

我有下面的图片。我的目标是找到对象中心点的 x,y 值。我试过 Image moments 但找不到任何 x,y 值。 我该怎么做?

中心点应该是红点或接近它的东西。

在您发布的 link 中,您可以在此处找到图片的中心:

///  Get the mass centers:
vector<Point2f> mc( contours.size() );
for( int i = 0; i < contours.size(); i++ )
    { mc[i] = Point2f( mu[i].m10/mu[i].m00 , mu[i].m01/mu[i].m00 ); }

您可以这样找到图像的中心:

#include "opencv2\opencv.hpp"
using namespace cv;

int main()
{
    Mat1b gray = imread("path_to_image", IMREAD_GRAYSCALE);

    Moments mu = moments(gray, true);
    Point center;
    center.x = mu.m10 / mu.m00;
    center.y = mu.m01 / mu.m00;

    Mat3b res;
    cvtColor(gray, res, CV_GRAY2BGR);

    circle(res, center, 2, Scalar(0,0,255));

    imshow("Result", res);
    waitKey();

    return 0;
}

生成的图像是: