使图像弯曲

时间:2019-08-01 13:13:37

标签: python opencv image-processing

我正在尝试对图像进行转换,以使直线/框变得弯曲。

不幸的是,我只能使用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))

输入图像 Actual 输出图像 Result 我需要的输出应该是弯曲的图像。

一个理想的输出示例, Desirable 这里的边缘是“弯曲的”而不是笔直的。

1 个答案:

答案 0 :(得分:2)

最通用的解决方案是使用remap。有关转换此图像的示例脚本,请参见stackoverflow上的this answer

enter image description here

对此:

enter image description here

以红色显示的那些控制点定义了转换。您将在直线上设置第一组点,并在曲线上设置目标点。