我已经尝试应用您的逻辑并对此进行了编码,它正在工作!
import numpy as np
import cv2
img = cv2.imread("rose.jpg",cv2.IMREAD_GRAYSCALE)
height = img.shape[0]
width = img.shape[1]
threshold = 150
for i in np.arange(height):
for j in np.arange(width):
a = img.item(i,j)
if a > threshold:
b = 255
else:
b = 0
img.itemset((i,j),b)
cv2.imwrite('binary.jpg',img)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
,
我建议使用opencv内置的阈值功能。
threshold,threshold_image = cv2.threshold(img,127,255,cv2.THRESH_BINARY)
其中127是阈值,255是最大值,cv2。THRESH_BINARY表示二进制阈值。如果需要将其倒置,则可以改为提供cv2.THRESH_BINARY_INV。
threshold_image将是您感兴趣的图像。
您可能必须先将图像转换为灰度,这可以通过
完成
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
本文链接:https://www.f2er.com/3150869.html