opencv自适应二值化
时间: 2023-06-30 12:16:34 浏览: 60
OpenCV 中的自适应二值化函数是 `cv2.adaptiveThreshold()`。这个函数的参数比较多,需要指定输入图像、输出图像、阈值类型、自适应方法、阈值类型、块大小、常数等。
下面是一个示例代码,实现对一张灰度图像进行自适应二值化:
```python
import cv2
img = cv2.imread('example.jpg',0) # 读取灰度图像
img = cv2.medianBlur(img,5) # 中值滤波
thresh = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,\
cv2.THRESH_BINARY,11,2) # 自适应二值化
cv2.imshow('image',thresh)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,`cv2.ADAPTIVE_THRESH_GAUSSIAN_C` 表示自适应方法为高斯加权平均,`cv2.THRESH_BINARY` 表示阈值类型为二值化。11 表示块大小,2 表示常数。你可以根据需要调整这些参数的值。
相关问题
opencv 自适应二值化
OpenCV中的自适应二值化是一种图像处理方法,用于在同一幅图像上不同部分具有不同亮度的情况下,根据每个小区域计算对应的阈值,并将图像二值化。这样可以在亮度不同的情况下得到更好的结果。
自适应二值化的函数为cv2.adaptiveThreshold(),它有以下几个参数:
1. 原始图像
2. 像素值上限
3. 自适应方法:cv2.ADAPTIVE_THRESH_MEAN_C表示区域内均值,cv2.ADAPTIVE_THRESH_GAUSSIAN_C表示区域内像素点加权和,权重为一个高斯窗口
4. 值的赋值方法:只有cv2.THRESH_BINARY和cv2.THRESH_BINARY_INV
5. 区域大小:规定区域大小为一个正方形的区域
6. 常数C:与方法有关的参数,阈值等于均值或加权值减去这个常数(为0相当于阈值就是求得区域内均值或加权值)
通过调整这些参数,可以根据具体的需求对图像进行自适应二值化处理。这样可以在处理含有不同亮度的图像时,得到更好的效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [opencv自适应二值化的应用](https://blog.csdn.net/weixin_43868552/article/details/126939961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [三、OpenCV图像的预处理——二值化与自适应阈值](https://blog.csdn.net/qq_34440409/article/details/120551622)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
opencv自适应阈值二值化
OpenCV中的自适应阈值二值化算法可以根据图像的局部特征动态地调整二值化的阈值,从而得到更好的二值化结果。下面是使用OpenCV中的自适应阈值二值化算法的示例代码:
```python
import cv2
# 读入图像
img = cv2.imread('image.png', 0)
# 自适应阈值二值化
img_binary = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2)
# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Binary Image', img_binary)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,`cv2.adaptiveThreshold`函数的第一个参数是输入图像,第二个参数是输出图像的最大值,第三个参数是自适应阈值算法的类型,这里选择了高斯加权平均值算法,第四个参数是二值化类型,这里选择了二值化,第五个参数是局部块大小,这里设置为11,第六个参数是从均值或加权平均值中减去的常数,这里设置为2。
可以根据具体的需求调整参数,得到更好的二值化效果。