Python 提到cv2.warpaffine()中的插值方法

Python 提到cv2.warpaffine()中的插值方法,python,image,opencv,Python,Image,Opencv,如何在cv2.warpAffine()方法中使用双三次插值方法?我试图通过非中心点旋转图像 import cv2 import numpy as np import matplotlib.pyplot as plt img = cv2.imread('1.jpg',0) rows,cols = img.shape M = cv2.getRotationMatrix2D((cols/2,rows/2),-40,1) dst = cv2.warpAffine(img,M,(cols,rows),

如何在
cv2.warpAffine()
方法中使用双三次插值方法?我试图通过非中心点旋转图像

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread('1.jpg',0)
rows,cols = img.shape
M = cv2.getRotationMatrix2D((cols/2,rows/2),-40,1) 
dst = cv2.warpAffine(img,M,(cols,rows),flags=CV_INTER_CUBIC)
#cv2.Resize(src, dst, interpolation=CV_INTER_CUBIC)
plt.imshow(dst)
有了这个,我得到了
NameError:name'CV\u INTER\u CUBIC'没有定义

OpenCV中大多数带有前缀的常量
CV\u
在新版本中被删除,它们只是变成了
常量值
而不是
CV\u常量值
。例如,当您将颜色空间从BGR更改为HSV时,使用“代码> CV2.COLLYBBG2HSV 而不是 CV2.CVICORIXBGR2HSV >,您将在C++中使用。然而,即使对于C++,插值方法的常数也有预先编写的代码> CV< >,所以它也是<代码> In SuthCube ,而不是< CV> IVIN TuxUp3/<代码>(尽管后者仍然是定义的)。例如,请参阅
warpAffine()
参考文件中的插值方法

基本的分离是
CV_uz
常量来自原始的C API。您可以看到所有的C API常量定义。通过浏览文档,您可以看到如何从较新的API中的常量中删除前缀
CV
,例如


所以不管怎样,这个问题的答案是使用标志
cv2。INTER_CUBIC

检查warpaffine的标志在这里我已经尝试过使用它了。我得到以下错误模块NotFoundError:没有名为“cv”的模块我知道还有其他页面有相同的问题。我也试过了,但仍然无法让我跑步:(在过去的10天里,我一直在使用cv2!你能举个例子吗?你应该使用
cv2
,而不是
cv
。常数应该是
cv2.INTER\u BICUBIC
。哦,谢谢!PS:我使用了cv2.INTER\u CUBIC,它很有效。@Arunsbraminion酷,我会补充这个作为答案。只是一点评论。cv2.INTER\u BICUBIC确实存在。这就是cv2.INTER_CUBIC coops。谢谢你,我甚至在打字的时候一直在写
INTER_CUBIC
,但我觉得我把事情搞砸了!