请用opencv 写一个图像二值化的程序
时间: 2023-11-29 11:03:32 浏览: 27
好的,以下是使用OpenCV进行图像二值化的程序示例:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 灰度化处理
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化处理
ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 显示原图和处理后的图像
cv2.imshow('original image', img)
cv2.imshow('binary image', binary)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在以上代码中,我们首先读取了一张图像,然后将其转换为灰度图像。接着,使用 `cv2.threshold()` 函数对灰度图像进行二值化处理。该函数的参数 `127` 表示二值化的阈值,小于该值的像素点将被设置为黑色,大于该值的像素点将被设置为白色。最后,我们使用 `cv2.imshow()` 函数将原图和处理后的图像显示出来。
注意:在运行上述代码之前,请将 `image.jpg` 替换为您自己的图像文件路径。
相关问题
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函数等待按键按下。
写一个C++ 二值化图像程序
好的,以下是一个简单的二值化图像程序的 C 语言代码:
```
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// 读入图像
Mat src = imread("image.jpg", IMREAD_GRAYSCALE);
// 判断是否读入成功
if (src.empty()) {
cout << "Failed to read image file." << endl;
return -1;
}
// 设定阈值
int threshold_value = 128;
int threshold_type = THRESH_BINARY;
// 二值化
Mat dst;
threshold(src, dst, threshold_value, 255, threshold_type);
// 显示结果
imshow("Original Image", src);
imshow("Thresholded Image", dst);
// 等待按键
waitKey(0);
return 0;
}
```
这段代码使用了 OpenCV 库来读入图像、进行图像处理和显示结果。具体来说,代码先将图像读入为灰度图,然后调用 OpenCV 库中的 threshold 函数对图像进行二值化,最后显示结果。