我有一张图片。使用以下代码在OpenCV中使用Canny Edge检测后,我得到了一个已检测边缘的二进制图像。
import cv2
img = cv2.imread('Test3.jpg')
canny = cv2.Canny(img, 0, 150)
cv2.imshow('Canny Edge', canny)
cv2.waitKey(0)
cv2.destroyAllWindows()
Original Image
Binary Image
现在,我想找出像素值改变的点的坐标值,从上到下扫描图像。怎么做??
最佳答案
要查找非零像素,可以使用numpy
函数nonzero
:
import numpy as np
x = np.array([[1, 0, 0], [0, 1, 0], [1, 1, 0]])
coords = np.nonzero(x)
print(coords)
就您而言,只需调用
np.nonzero(canny)
即可。将输出
array([0, 1, 2, 2]), array([0, 1, 0, 1]))
然后,您可以查询任意维度的最小/最大坐标值,例如
np.max(coords[0])
关于python - 如何找出图像中像素值发生变化的最高坐标点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53814087/