opencv图像二值化c++
时间: 2023-07-19 08:25:19 浏览: 56
以下是使用OpenCV和C++进行图像二值化的示例代码:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat image = imread("image.jpg");
// 将图像转为灰度图
cvtColor(image, image, CV_BGR2GRAY);
// 应用自适应阈值二值化
Mat binary_image;
adaptiveThreshold(image, binary_image, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY, 11, 2);
// 显示二值化后的图像
imshow("Binary Image", binary_image);
waitKey(0);
return 0;
}
```
上述代码中,我们首先读取了一张图像,并将其转化为灰度图。然后,我们使用adaptiveThreshold()函数进行自适应阈值二值化,其中第三个参数255表示最大值,第四个参数ADAPTIVE_THRESH_GAUSSIAN_C表示使用高斯加权平均法,第五个参数THRESH_BINARY表示二值化类型,第六个参数11表示邻域大小,第七个参数2表示从加权平均值中减去的常量。最后,我们将二值化后的图像显示出来。
相关问题
OPENCV图像二值化C++
你好!对于OpenCV图像的二值化,你可以使用以下代码示例:
```c
#include <opencv2/opencv.hpp>
int main() {
// 读取图像
cv::Mat img = cv::imread("image_path.jpg", cv::IMREAD_GRAYSCALE);
// 应用二值化
cv::Mat binary;
cv::threshold(img, binary, 128, 255, cv::THRESH_BINARY);
// 显示结果
cv::imshow("Binary Image", binary);
cv::waitKey(0);
return 0;
}
```
在上述代码中,首先使用`imread`函数加载图像,并将其转换为灰度图像。然后,使用`threshold`函数将图像进行二值化处理,其中`128`是阈值,根据具体需求进行调整。最后,使用`imshow`显示二值化后的图像,并使用`waitKey`等待按键操作。
注意,要使用此代码,你需要在编译器中配置OpenCV库。
希望能对你有所帮助!如果还有其他问题,请随时提问。
opencv图像二值化C++程序
以下是一个使用OpenCV库实现图像二值化的C程序示例:
```
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main()
{
// 读取图像
Mat image = imread("lena.jpg", IMREAD_GRAYSCALE);
// 进行二值化
Mat binary;
threshold(image, binary, 128, 255, THRESH_BINARY);
// 显示原图和二值化后的图像
namedWindow("Original Image", WINDOW_NORMAL);
namedWindow("Binary Image", WINDOW_NORMAL);
imshow("Original Image", image);
imshow("Binary Image", binary);
// 等待按键按下
waitKey(0);
return 0;
}
```
该程序首先读取名为"lena.jpg"的灰度图像,然后使用OpenCV的threshold函数进行二值化处理,将像素值大于128的像素设为255,小于等于128的像素设为0,最终得到二值化图像。接着使用namedWindow和imshow函数分别显示原图和二值化后的图像,并使用waitKey函数等待按键按下。