小编Dav*_*vid的帖子

如何解决Python中图像和绘图之间的不对齐问题?

我的目标是显示二值图像,然后将边界轮廓绘制为覆盖图像的线。如果我这样做并将结果导出为 PDF,当人们从左下角移过图像时,我会看到图像和轮廓之间的错位逐渐恶化。因此,背景图像或轮廓的位置似乎存在乘法误差。

我认为这个问题是由 PDF 渲染器引起的。如果我以非常高的 DPI 以 PNG 格式输出结果,我可以解决该问题,但由于其他原因我更喜欢 PDF。有谁知道我是否可以更改设置以使 PDF 正确渲染?

这是一个示例和生成的图像。您可以看到左下角图像和轮廓之间的对齐情况良好,右上角最差。

import numpy as np
import matplotlib.pyplot as plt
import cv2

# Make a test image
img = np.zeros((100,100), dtype=np.uint8)
img[20:99,1:80] = 1
img = np.matlib.repmat(img, 9, 6)

# Extract contours
cntrs, hier = cv2.findContours(img, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)

# Make overlay
fig = plt.figure(figsize=(6,9), dpi=300)
ax = fig.add_subplot()
ax.imshow(img, interpolation='none', cmap=plt.cm.gray)
for cntr in cntrs:
    x = np.append(cntr[:, 0, 0], cntr[0, 0, 0])
    y = np.append(cntr[:, 0, 1], cntr[0, …
Run Code Online (Sandbox Code Playgroud)

python pdf matplotlib

1
推荐指数
1
解决办法
264
查看次数

标签 统计

matplotlib ×1

pdf ×1

python ×1