0

Python:我想创建一个条件来检查二进制图像数组并从中心找到零行。如果中心没有零行,则打印语句“零行不可用”......!

图片:图片

Array= [[255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255]
 [255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255]
 [255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255]
 [255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255   0   0]
  [0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0]
  [0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0]
  [0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0]
  [0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0]
  [0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0]
  [0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0]
[255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255]
[255 255 255 255   0   0   0   0   0   0 255 255]]

我试过的:

img = np.array(img) 
moment = cv2.moments(img)   
X = int(moment ["m10"] / moment["m00"])
Y = int(moment ["m01"] / moment["m00"])
print(X,Y)
u = X ,Y
imagesE = cv2.findNonZero(u)
print(imagesE)

这些是零行。我想通过条件从数组的中心找到这些零行......!

[[
   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0]]

然后我只需使用布尔运算符“!” 与cv2.findNonZero. 但是没有找到需要的输出。

4

1 回答 1

2

我不知道“中心零行”是什么,但是您可以通过以下方式获得所有行的总和:

rowSums = np.sum(array, axis=1)
于 2021-05-15T18:36:13.823 回答