【发布时间】:2019-11-08 17:51:37
【问题描述】:
我在打印输出时遇到了一些问题。我的输出低于输出
array([[336.34305, 214.00804]], dtype=float32)
而不仅仅是
[[336.34305, 214.00804]]
代码:
import cv2
import numpy as np
chess_img = cv2.imread('board.jpeg')
kernel = np.ones((5,5), np.uint8)
gray = cv2.cvtColor(chess_img,cv2.COLOR_BGR2GRAY)
corners = []
ret , corners = cv2.findChessboardCorners(gray,(7,7), None)
if ret == False:
print('Did not find')
cv2.drawChessboardCorners(chess_img,(7,7),corners,ret)
def sortFirst(val):
return val[0][0]
cornersort = corners
print('Corners:')
print(cornersort)
cornersort = sorted(cornersort, key = sortFirst)
print(cornersort)
当我编写另一个代码时,它运行良好:
import numpy as np
arr = [[[2,3]],[[3,7]],[[5,1]]]
def sortSecond(val):
return val[0][1]
arr = sorted(arr , key = sortSecond)
print(arr)
第一个代码的输出是
[array([[336.34305, 214.00804]], dtype=float32), array([[337.23248,78.57056]], dtype=float32)]
第二个代码的输出是
[[[5, 1]], [[2, 3]], [[3, 7]]]
我希望第一个代码的输出与第二个代码一样。请帮忙!
【问题讨论】:
-
它是一个numpy数组,所以你要打印的是
arr[0]
标签: python numpy sorting opencv numpy-ndarray