我正在尝试转换图像,使直线/框变得弯曲。
不幸的是,我只能使用仿射变换来改变图像的视角。这只会使线不平行(如果它们之前是平行的),线保持直线。不知道哪些功能可以带来曲线变换。
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))
输入图像 输出图像 我需要的输出应该是弯曲的图像。
理想输出的示例, 这里的边缘是“弯曲的”而不是直的。
最佳答案
最通用的解决方案是使用 remap 。请参阅this answer在 stackoverflow 上查看转换此图像的示例脚本:
对此:
那些以红色显示的控制点定义了变换。您可以在直线上设置第一组点,在曲线上设置目标点。
关于python - 使图像具有曲线感,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57309856/