OpenCV阈值分割(三)——OTSU

以下是使用 OpenCV 和 Otsu 方法进行阈值分割的 C++ 代码示例:

#include 
#include 

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
  // 读取输入图像
  Mat src = imread("input.jpg", IMREAD_GRAYSCALE);

  // 判断图像是否加载成功
  if (src.empty())
  {
    cout << "Error: Failed to load image." << endl;
    return -1;
  }

  // 应用 Otsu 方法计算阈值
  double thresholdValue = threshold(src, src, 0, 255, THRESH_BINARY | THRESH_OTSU);

  // 显示结果图像
  imshow("Input Image", src);
  cout << "Otsu threshold value: " << thresholdValue << endl;

  // 等待用户按下任意按键退出程序
  waitKey(0);

  return 0;
}

在上述代码中,我们首先使用 `imread` 函数读取输入图像,并判断是否成功加载。然后,我们使用 `threshold` 函数应用 Otsu 方法计算阈值,并将输入图像进行二值化处理,生成输出图像。最后,我们使用 `imshow` 函数将输入和输出图像显示出来,并输出计算得到的阈值。最后,我们使用 `waitKey` 函数等待用户按下任意按键,以便退出程序。

你可能感兴趣的:(opencv,人工智能,计算机视觉)