我有一个透明的png图像"foo.png",我打开了另一个图像
im = Image.open("foo2.png");
Run Code Online (Sandbox Code Playgroud)
现在我需要的是将foo.png与foo2.png合并.
(foo.png包含一些文本,我想在foo2.png上打印该文本)
我正在录制用户眼睛的视频,然后使用计算机视觉来跟踪他们的眼睛以试图估计他们的目光,但是我能够记录用户的角度不是直接的并且数据的表示需要显示,就好像用户正在直视.
为了进一步解释自己,请考虑下面的图像,描述我到目前为止所做的以及我想要实现的目标:
我想也许最好的方法就是翻译视角,但不是很精通,我不知道从哪里开始.
我对任何有关达到预期结果的最佳方法的建议持开放态度,但请记住我的矩阵数学是相当生疏的,所以如果你使用任何众所周知的方法,请迎合我的无知并解释一切以及您可以.
数据当前存储为X/Y点的NumPy数组
我目前正在使用 opencv (CV2) 和 Python Pillow 图像库来尝试拍摄任意手机的图像并用新图像替换屏幕。我已经到了可以拍摄图像并识别手机屏幕并获得角落的所有坐标的地步,但是我很难用新图像替换图像中的那个区域。
我到目前为止的代码:
import cv2
from PIL import Image
image = cv2.imread('mockup.png')
edged_image = cv2.Canny(image, 30, 200)
(contours, _) = cv2.findContours(edged_image.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
contours = sorted(contours, key = cv2.contourArea, reverse = True)[:10]
screenCnt = None
for contour in contours:
peri = cv2.arcLength(contour, True)
approx = cv2.approxPolyDP(contour, 0.02 * peri, True)
# if our approximated contour has four points, then
# we can assume that we have found our screen
if len(approx) == 4:
screenCnt = …Run Code Online (Sandbox Code Playgroud) 我偶然发现了这个问题,并尝试使用Python Pillow进行透视转换.
这是我正在尝试做的以及结果如下:
这是我以前尝试过的代码:
from PIL import Image
import numpy
# function copy-pasted from https://stackoverflow.com/a/14178717/744230
def find_coeffs(pa, pb):
matrix = []
for p1, p2 in zip(pa, pb):
matrix.append([p1[0], p1[1], 1, 0, 0, 0, -p2[0]*p1[0], -p2[0]*p1[1]])
matrix.append([0, 0, 0, p1[0], p1[1], 1, -p2[1]*p1[0], -p2[1]*p1[1]])
A = numpy.matrix(matrix, dtype=numpy.float)
B = numpy.array(pb).reshape(8)
res = numpy.dot(numpy.linalg.inv(A.T * A) * A.T, B)
return numpy.array(res).reshape(8)
# test.png is a 256x256 white square
img = Image.open("./images/test.png")
coeffs = find_coeffs(
[(0, 0), (256, 0), (256, …Run Code Online (Sandbox Code Playgroud) python image-processing python-imaging-library coordinate-transformation
我正在尝试编写一个Python程序,它接受输入图像(例如JPEG)并生成“地球仪组件”输出图像,类似于le Paper Globe。本质上,如果输出图像被打印、剪切、折叠和粘合,人们应该获得投影到粗糙球体上的原始图像。
该程序会将输入图像划分为 32 个(8 个水平,4 个垂直)矩形,然后将每个矩形映射到一些精心选择的梯形上,或者更一般地说,映射到四边形上。我找到了一种将四边形映射到正方形的Pillow/PIL 方法,但找不到将矩形映射到四边形的方法。
有谁知道如何在Python中将输入图像的矩形映射到输出图像的四边形上?我更喜欢 Pillow/PIL,但任何可以打开和保存 JPEG 的库都可以。