用python和opencv写出二值化
时间: 2023-07-04 13:27:16 浏览: 138
好的,以下是用 Python 和 OpenCV 实现的二值化代码:
```python
import cv2
# 加载图像
img = cv2.imread("image.jpg")
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 应用阈值
threshold_value = 127
max_value = 255
_, binary = cv2.threshold(gray, threshold_value, max_value, cv2.THRESH_BINARY)
# 显示结果
cv2.imshow("Binary Image", binary)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们首先加载了一个图像,然后将其转换为灰度图像。接下来,我们应用了一个阈值,将图像二值化。最后,我们显示了二值化的结果。
在这个例子中,我们使用的阈值是 127,这意味着所有像素值小于 127 的像素都被设置为 0,所有像素值大于或等于 127 的像素都被设置为 255。如果你想要尝试不同的阈值,可以更改 `threshold_value` 变量的值。
相关问题
请写出python opencv 画出二值化图片百分之一的轮廓点具体代码
import cv2
import numpy as np
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
ret, thresh = cv2.threshold(img, 127, 255, 0)
contours, hierarchy = cv2.findContours(thresh, 1, 2)
for cnt in contours:
epsilon = 0.001 * cv2.arcLength(cnt, True)
approx = cv2.approxPolyDP(cnt, epsilon, True)
cv2.drawContours(img, [approx], 0, (0, 255, 0), 5)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
请写出python opencv 找出二值化图片百分之一的轮廓点坐标的具体代码
import cv2
import numpy as np # 读取图片
img = cv2.imread('image.png', 0) # 获取图片二值化
ret, thresh = cv2.threshold(img, 127, 255, 0) # 找到轮廓
contours, hierarchy = cv2.findContours(thresh, 1, 2) # 获取轮廓百分之一的坐标点
contour_points = contours[0][::int(len(contours[0])/100)] # 打印坐标
for point in contour_points:
print(point[0])
阅读全文