将图像坐标系的原点移动到中心点,并建立坐标轴python代码
时间: 2023-06-23 10:09:17 浏览: 168
假设图片大小为 `width` × `height`,可以将图像坐标系的原点移动到中心点的 Python 代码如下:
```python
import numpy as np
# 图片大小
width = 640
height = 480
# 计算中心点坐标
center_x = width / 2
center_y = height / 2
# 建立坐标轴
x_axis = np.array([[0, center_y], [width, center_y]])
y_axis = np.array([[center_x, 0], [center_x, height]])
```
解释一下:
- `center_x` 和 `center_y` 分别是图片中心点的 x 坐标和 y 坐标。
- `x_axis` 和 `y_axis` 分别是 x 轴和 y 轴的坐标点,用 Numpy 的数组表示。其中 `x_axis` 的两个坐标点分别是 `(0, center_y)` 和 `(width, center_y)`,表示 x 轴从左到右,y 坐标为 `center_y` 不变;`y_axis` 的两个坐标点分别是 `(center_x, 0)` 和 `(center_x, height)`,表示 y 轴从下到上,x 坐标为 `center_x` 不变。
相关问题
将坐标系的原点移动到中心点,并建立坐标轴python代码
以下是将坐标系的原点移动到中心点,并建立坐标轴的 Python 代码:
```python
import matplotlib.pyplot as plt
# 原始坐标系的数据
x_data = [1, 2, 3, 4, 5]
y_data = [2, 4, 6, 8, 10]
# 计算中心点的坐标
x_center = sum(x_data) / len(x_data)
y_center = sum(y_data) / len(y_data)
# 将原始坐标系的数据移动到中心点
x_data = [x - x_center for x in x_data]
y_data = [y - y_center for y in y_data]
# 绘制坐标系
fig, ax = plt.subplots()
ax.spines['left'].set_position('center')
ax.spines['bottom'].set_position('center')
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
# 绘制数据
ax.plot(x_data, y_data, 'ro')
plt.show()
```
运行以上代码,即可在窗口中看到一个以中心点为原点的坐标系,并在其中绘制了一些数据点。
以图像中心点为原点建立坐标系python代码
以下是以图像中心点为原点建立坐标系的 Python 代码示例:
```python
import cv2
# 读入图片
img = cv2.imread('test.jpg')
# 获取图像中心点
height, width, _ = img.shape
center_x, center_y = int(width/2), int(height/2)
# 以图像中心点为原点建立坐标系
cv2.line(img, (center_x, 0), (center_x, height), (0, 255, 0), 1)
cv2.line(img, (0, center_y), (width, center_y), (0, 255, 0), 1)
# 显示图片
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
代码中通过 `cv2.imread` 读入图片,然后使用 `img.shape` 获取图片的宽度、高度和通道数,进而计算出图片中心点的坐标。接着使用 `cv2.line` 绘制坐标系,并使用 `cv2.imshow` 显示图片。最后使用 `cv2.waitKey` 和 `cv2.destroyAllWindows` 保证程序正常退出。
阅读全文