直方图阈值分割python代码
时间: 2023-07-09 17:31:03 浏览: 88
tuxiangmohuhua.rar_模糊 阈值
下面是一个使用Python实现的简单直方图阈值分割的代码:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('input.jpg', 0)
# 计算直方图
hist, bins = np.histogram(img.flatten(), 256, [0, 256])
# 计算阈值
threshold = np.argmax(hist)
# 分割图像
seg_img = np.zeros_like(img)
seg_img[img > threshold] = 255
# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Segmented Image', seg_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,`cv2.imread('input.jpg', 0)` 用于读取灰度图像,`np.histogram()` 用于计算直方图,`np.argmax()` 用于找到直方图中的最大值,作为阈值, `np.zeros_like()` 用于创建一个与原图大小相同的全黑图像,`seg_img[img > threshold] = 255` 用于将原图中灰度值大于阈值的像素置为白色,其余置为黑色。最后使用 `cv2.imshow()` 显示原图和分割后的图像,`cv2.waitKey()` 等待用户按下任意键,`cv2.destroyAllWindows()` 销毁所有窗口。
阅读全文