Python cv2 API中不推荐使用的CreateImage函数的替代方法
我正在更新我的一个项目中使用的包,我想使用更新的cv2 API,我遇到了这个问题,不再使用cv.CreateImage函数 以下是给我带来问题的代码:Python cv2 API中不推荐使用的CreateImage函数的替代方法,python,opencv,Python,Opencv,我正在更新我的一个项目中使用的包,我想使用更新的cv2 API,我遇到了这个问题,不再使用cv.CreateImage函数 以下是给我带来问题的代码: gray\u image=cv.cvt颜色(i,cv.COLOR\u RGB2GRAY) df_dx=cv.CreateImage(cv.GetSize(i),cv.IPL_DEPTH_16S,1) cv.Sobel(灰色图像,df\U dx,1,1) 变量“i”是大小为640*480的RGB图像 我尝试使用numpy复制此方法应执行的操作,如
gray\u image=cv.cvt颜色(i,cv.COLOR\u RGB2GRAY)
df_dx=cv.CreateImage(cv.GetSize(i),cv.IPL_DEPTH_16S,1)
cv.Sobel(灰色图像,df\U dx,1,1)
变量“i”是大小为640*480的RGB图像
我尝试使用numpy复制此方法应执行的操作,如下所示:
df_dx=np.zero(i.shape[0],i.shape[1],i.shape[2]),np.int16)
但这会导致以下错误
:(,TypeError('只能将大小为1的数组转换为Python标量'),无)
这迫使我相信,当我创建numpy数组时,它抛出了这个错误,我不知道如何修复它。提前感谢
cv.CreateImage的第三个参数是1
,因此df_dx
应该只有一个通道,而不是与i
相同数量的通道。换句话说np.zero(i.shape[0],i.shape[1]),np.int16)
错误似乎是文档没有像应该的那样清晰。我可以绕过图像的创建,因为更新后的Sobel函数返回一个图像,在本例中,该图像将是df_dx变量