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
这将编译并运行程序,显示原始图像和处理后的图像。你可以通过调整blockSize
和offset
参数来改变动态阈值处理的效果。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。