CV2网格中的矩形不均匀

时间:2017-12-05 17:09:46

标签: python opencv matplotlib

我正在尝试在(非常)大图像上绘制网格。我使用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的附加图像:

Visual results when plotted with plt.imshow()

我不确定为什么会这样 - 有人可以解释一下吗?

0 个答案:

没有答案