python - 使图像具有曲线感

标签 python opencv image-processing

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

不幸的是,我只能使用仿射变换来改变图像的视角。这只会使线不平行(如果它们之前是平行的),线保持直线。不知道哪些功能可以带来曲线变换。

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 这里的边缘是“弯曲的”而不是直的。

最佳答案

最通用的解决方案是使用 remap 。请参阅this answer在 stackoverflow 上查看转换此图像的示例脚本:

enter image description here

对此:

enter image description here

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

关于python - 使图像具有曲线感,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57309856/

相关文章:

python - 获取文本 tkinter 小部件的行数

python - py2neo Graph.find_one() 弃用警告?

python - 如何使用运行时计算变量格式化字符串宽度?

Python OpenCV - 网络摄像头捕获返回空白屏幕

python - 如何在我的ubuntu 11.10中使用opencv + python检测红球

image-processing - 从编码图像和视频中提取 DCT 系数

r - 无法使用 R 中的 EBImage 包显示实际的灰度图像

python - 如何从 Python 中的一组线性方程式中绘制平面?

python - 在启用 OpenMP 的情况下编译 OpenCV,但应用程序仍在一个内核上运行

matlab - 在 MATLAB 中查找二维脉冲峰值