我正在尝试对图像进行转换,以使直线/框变得弯曲。
不幸的是,我只能使用Affine变换来更改图像的透视图。只有在直线平行之前,直线才会不平行,直线保持直线。我不知道哪些函数可以带来弯曲的转换。
hz_error,vert_error = 10,5
w,h,_=img.shape
src = np.float32([(0,0),(w,0),(w,h),(0,h)])
dst = np.float32([(-hz_error,-vert_error),(w+hz_error,-vert_error),(w-hz_error,h+vert_error),(0,h)])
M = cv2.getPerspectiveTransform(src, dst)
warped = cv2.warpPerspective(img, M, (w+20, h+20))
输入图像 输出图像 我需要的输出应该是弯曲的图像。
一个理想的输出示例, 这里的边缘是“弯曲的”而不是笔直的。
答案 0 :(得分:2)
最通用的解决方案是使用remap。有关转换此图像的示例脚本,请参见stackoverflow上的this answer:
对此:
以红色显示的那些控制点定义了转换。您将在直线上设置第一组点,并在曲线上设置目标点。