用c++写一个opencv二值化图片的例子
时间: 2023-12-04 16:05:44 浏览: 69
以下是使用OpenCV库和C语言编写的二值化图像的示例代码:
```c
#include <opencv2/opencv.hpp>
int main() {
// 读取图像
cv::Mat img = cv::imread("example.jpg", cv::IMREAD_GRAYSCALE);
// 进行二值化处理
cv::Mat binary;
cv::threshold(img, binary, 128, 255, cv::THRESH_BINARY);
// 显示原图和二值化图像
cv::imshow("Original", img);
cv::imshow("Binary", binary);
cv::waitKey(0);
return 0;
}
```
在此示例中,我们首先使用OpenCV的`imread`函数读取图像。然后,我们使用`threshold`函数将图像转换为二值图像。`threshold`函数的参数包括输入图像、阈值、最大值和阈值类型。最后,我们使用`imshow`函数显示原始图像和二值化图像,并使用`waitKey`函数等待用户按下键盘上的任意键来结束程序。
相关问题
opencv c++ 二值化
OpenCV是一个开源计算机视觉库,它可以在Python中进行图像处理。图像二值化是一种图像处理方法,用于将灰度图像转换为黑白图像。
在OpenCV中,可以使用cv2.threshold()函数进行图像二值化。该函数有三个参数:第一个是输入图像,第二个是阈值,第三个是最大值。当灰度值大于阈值时,将对应像素点赋值为最大值,否则赋值为0。
下面是一个简单的示例代码:
```python
import cv2
# 读入灰度图像
img = cv2.imread("image.jpg", cv2.IMREAD_GRAYSCALE)
# 图像二值化
threshold_value = 128
(T, img_threshold) = cv2.threshold(img, threshold_value, 255, cv2.THRESH_BINARY)
# 显示结果
cv2.imshow("img_threshold", img_threshold)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,阈值被设置为128,最大值被设置为255,这意味着所有灰度值大于128的像素点都将被赋值为255,其他像素点都将被赋值为0。
在opencv中使用c++,滑动条更改二值化的阈值
以下是一个使用opencv和C语言实现滑动条更改二值化阈值的例子:
```c
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int thresholdValue = 100;
void onTrackbar(int, void*) {
// 读取图像
Mat src = imread("test.jpg", IMREAD_GRAYSCALE);
// 二值化处理
Mat dst;
threshold(src, dst, thresholdValue, 255, THRESH_BINARY);
// 显示结果
imshow("Binary Image", dst);
}
int main() {
// 创建窗口和滑动条
namedWindow("Binary Image", WINDOW_AUTOSIZE);
createTrackbar("Threshold", "Binary Image", &thresholdValue, 255, onTrackbar);
// 初始化图像
Mat src = imread("test.jpg", IMREAD_GRAYSCALE);
// 显示原图
imshow("Original Image", src);
// 初始化阈值
onTrackbar(0, 0);
// 等待按键
waitKey(0);
return 0;
}
```
在这个例子中,我们首先创建了一个窗口和一个滑动条。滑动条的值将作为二值化的阈值。当滑动条值发生变化时,调用`onTrackbar`函数进行图像处理和显示。
`onTrackbar`函数首先读取图像,然后使用`threshold`函数进行二值化处理。最后,显示结果图像。
在主函数中,我们初始化了图像并显示原图。然后,我们初始化了阈值并等待按键。当用户关闭窗口时,程序退出。
你可以根据需要修改图像文件名和其他参数来适应你的应用场景。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)