np.set_printoptions(suppress=True, precision=4)
时间: 2023-05-27 13:03:35 浏览: 173
np.set_printoptions函数用于设置NumPy数组的打印选项。
suppress=True:表示禁用科学计数法,比如将1.23e+05转换为123000。
precision=4:表示保留4位小数。
所以np.set_printoptions(suppress=True, precision=4)意思是将NumPy数组打印时不使用科学计数法,并且保留4位小数。
相关问题
import cv2 import numpy as np chessboard_size = (9,6) # 棋盘格行列数 objp = np.zeros((np.prod(chessboard_size), 3), np.float32) # 内部点的坐标 objp[:, :2] = np.mgrid[0:chessboard_size[0], 0:chessboard_size[1]].T.reshape(-1, 2) img = cv2.imread('C:/yingxiang/biaoding.png') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ret, corners = cv2.findChessboardCorners(gray, chessboard_size, None) if ret == True: cv2.drawChessboardCorners(img, chessboard_size, corners, ret) ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera([objp], [corners], gray.shape[::-1], None, None) # 打印相机内部参数和畸变系数 print("相机内部参数:") np.set_printoptions(precision=4, suppress=True) print(mtx) print("畸变系数:") np.set_printoptions(precision=4, suppress=True) print(dist) # 打印外部参数 print("旋转向量:") np.set_printoptions(precision=4, suppress=True) print(rvecs) print("平移向量:") np.set_printoptions(precision=4, suppress=True) print(tvecs)这段代码如何将旋转向量和平移向量改为旋转矩阵和平移矩阵
在 OpenCV 中,可以使用 `cv2.Rodrigues()` 函数将旋转向量转换为旋转矩阵,使用 `np.array()` 函数将平移向量转换为平移矩阵。修改代码如下:
```
import cv2
import numpy as np
chessboard_size = (9,6) # 棋盘格行列数
objp = np.zeros((np.prod(chessboard_size), 3), np.float32) # 内部点的坐标
objp[:, :2] = np.mgrid[0:chessboard_size[0], 0:chessboard_size[1]].T.reshape(-1, 2)
img = cv2.imread('C:/yingxiang/biaoding.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, corners = cv2.findChessboardCorners(gray, chessboard_size, None)
if ret == True:
cv2.drawChessboardCorners(img, chessboard_size, corners, ret)
ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera([objp], [corners], gray.shape[::-1], None, None)
# 打印相机内部参数和畸变系数
print("相机内部参数:")
np.set_printoptions(precision=4, suppress=True)
print(mtx)
print("畸变系数:")
np.set_printoptions(precision=4, suppress=True)
print(dist)
# 将旋转向量转换为旋转矩阵
R, _ = cv2.Rodrigues(rvecs[0])
# 打印旋转矩阵和平移矩阵
print("旋转矩阵:")
np.set_printoptions(precision=4, suppress=True)
print(R)
print("平移矩阵:")
np.set_printoptions(precision=4, suppress=True)
print(np.array(tvecs[0]).reshape(3,1))
```
这样,就将旋转向量和平移向量转换为了旋转矩阵和平移矩阵。
np.set_printoptions
`np.set_printoptions` 是 NumPy 库中的一个函数,用于设置 NumPy 数组的打印选项。通过调用该函数,可以设置以下参数:
- `precision`:指定输出数字的精度(小数点后的位数)。
- `suppress`:控制是否在小数部分有多余的零时省略它们。
- `threshold`:指定当数组元素数量超过该值时,数组将以省略号 `...` 的形式打印。
- `edgeitems`:指定数组边缘(即第一行和最后一行)应显示多少个元素。
- `linewidth`:指定每行输出的字符数。
例如,以下代码设置 `np.set_printoptions` 的参数,以便在打印 NumPy 数组时,小数部分最多只显示两位数字,省略多余的零,边缘显示 3 个元素,数组超过 6 个元素时,以省略号 `...` 的形式打印。
```python
import numpy as np
np.set_printoptions(precision=2, suppress=True, edgeitems=3, threshold=6)
arr = np.random.rand(7,7)
print(arr)
```
输出结果如下:
```
[[0.58 0.69 0.17 ... 0.11 0.42 0.06]
[0.73 0.08 0.94 ... 0.21 0.86 0.22]
[0.34 0.97 0.98 ... 0.68 0.02 0.74]
...
[0.68 0.82 0.85 ... 0.24 0.37 0.02]
[0.77 0.47 0.45 ... 0.86 0.85 0.59]
[0.03 0.14 0.74 ... 0.17 0.81 0.97]]
```
阅读全文