我正在尝试在(非常)大图像上绘制网格。我使用cv2和Python 3作为参考。请参阅以下代码:
output_image = np.zeros((23000, 23000), dtype=np.int)
output_image = np.uint8(np.stack((output_image, output_image, output_image), 2)*255)
...
import cv2
def visualise_tiles(image, num_tiles):
X = image[:,0]
Y = image[:,1]
x_range = int(max(X) - min(X))
y_range = int(max(Y) - min(Y))
x_step = int((max(X) - min(X)) // num_tiles)
y_step = int((max(Y) - min(Y)) // num_tiles)
for i in tqdm(range(num_tiles)):
for j in range(num_tiles):
x_left, y_left = x_step * i, y_step * (j + 1)
x_right, y_right = x_step * (i + 1), y_step * j
cv2.rectangle(output_image, (x_left, y_left), (x_right, y_right), (255, 255, 0), 100)
当给定特定图像时,x_range为9786,y_range为21674. x_step因此计算为489,y_step为1083.这很好,我们期望得到的矩形是非正方形,它们是。一切都好。
我的问题是输出中有一些奇怪的“拉伸”,矩形是不均匀的,而我想要一个完美的网格。特别参见y轴为15000,x轴为5000的附加图像:
我不确定为什么会这样 - 有人可以解释一下吗?