python - 如何适应不同分辨率的图像?

标签 python opencv image-processing

我怎样才能适合然后叠加 2 个具有不同分辨率的图像?

这是主图:
image description

我有这个,它与上图有正确的网格:

image description

#!/usr/bin/python

import cv2
from matplotlib import pyplot as plt
import numpy as np
img1 = cv2.imread('transparency.jpg')

img2 = cv2.imread('La1.png')


row1,cols1, ch1 = img1.shape
row2,cols2, ch2 = img2.shape

res = cv2.resize(img2, None , fx = (1.* row1 /row2 ), fy =(1.* cols1 /cols2 ), interpolation = cv2.INTER_CUBIC)

最佳答案

从你的问题中很不清楚它应该如何出来!我只是在命令行中使用 ImageMagick 执行此操作,它安装在大多数 Linux 发行版上并且可用于 OSX 和 Windows - 如果它漂浮你的船,那么有 Python 绑定(bind)。

无论如何,让我们获取图像的大小:

identify m*

main.png PNG 1790x4098 1790x4098+0+0 8-bit sRGB 942KB 0.000u 0:00.000
mesh.jpg JPEG 2537x5703 2537x5703+0+0 8-bit sRGB 3.493MB 0.000u 0:00.000

因此,让我们加载主图像并调整其大小以匹配网格。然后让我们加载网格,让所有在白色 10% 以内的东西都是透明的——这将只留下网格中的黑线。但是我们不能在黑色上看到黑色,所以让我们将网格中的黑色线条设为红色。然后将它(技术术语意思是“复合”)放在主图像的顶部:
convert main.png -resize 2537x5703! \( mesh.jpg -fuzz 10% -transparent white -fill red -colorize 100% \) -composite result.png

这就是你得到的。

enter image description here

看起来您的网格需要从左侧裁剪以将其移过来,因此请尝试:
convert main.png -resize 2480x5703! \( mesh.jpg -crop +57 -fuzz 10% -transparent white -fill red -colorize 100% \) -composite result.png

enter image description here

关于python - 如何适应不同分辨率的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36936440/

相关文章:

python - 在 Dreamhost 上安装和编译 Python、Django、Virtualenv、Mercurial、Git、LessCSS 等的脚本

python - Django 表单 - 设置标签

c++ - 与 Windows 窗体应用程序一起使用时出现 opencv 错误

python - 如何在 Python 中提高 OpenCV 匹配结果的准确性

python - 使用Opencv检测梯形和菱形时的公差问题

python - 如何在 __repr__ 函数中返回一个列表?

python - 你如何使用 Hypothesis @given 参数化一个 pytest 类?

python - 在没有 apt-get 的 Linux (Ubuntu) 上运行 OpenCV

c# - 如何提高窗口电话 8.1 中的性能方法 GetThumbnailAsync

c++ - C中的图像处理