OpenCV C++版图像动态阈值处理

发布时间:2024-08-26 16:35:42 作者:小樊
来源:亿速云 阅读:92

OpenCV是一个开源的计算机视觉和机器学习库,它提供了大量的图像处理函数

首先,确保已经安装了OpenCV库。然后,创建一个名为main.cpp的文件,并添加以下代码:

#include<iostream>
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

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

    if (input_image.empty()) {
        cout << "无法打开或找到输入图像"<< endl;
        return -1;
    }

    // 创建窗口
    namedWindow("Input Image", WINDOW_NORMAL);
    namedWindow("Output Image", WINDOW_NORMAL);

    // 显示原始图像
    imshow("Input Image", input_image);

    // 创建输出图像
    Mat output_image = Mat::zeros(input_image.size(), CV_8UC1);

    // 设置动态阈值参数
    int blockSize = 5;
    double offset = 10;

    // 应用自适应阈值处理
    adaptiveThreshold(input_image, output_image, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, blockSize, offset);

    // 显示处理后的图像
    imshow("Output Image", output_image);

    // 等待按键
    waitKey(0);

    // 销毁窗口
    destroyAllWindows();

    return 0;
}

在这个例子中,我们首先读取一个名为input.jpg的灰度图像。然后,我们创建两个窗口,一个用于显示原始图像,另一个用于显示处理后的图像。接下来,我们使用adaptiveThreshold函数应用自适应阈值处理。最后,我们显示处理后的图像,并等待用户按键。

要编译和运行此程序,请使用以下命令:

g++ -o main main.cpp `pkg-config --cflags --libs opencv4`
./main

这将编译并运行程序,显示原始图像和处理后的图像。你可以通过调整blockSizeoffset参数来改变动态阈值处理的效果。

推荐阅读:
  1. 如何用OpenCV -python3实现视频物体追踪
  2. C++ 中怎么利用OpenCV实现阈值操作

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++

上一篇:OpenCV在C++中的图像分割算法比较

下一篇:C++ OpenCV进行图像特征点优化

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》