C++ 如何在python中使用cv::Mat?
我在做一个瞳孔检测项目。我找到了这个链接,使用这个链接中提供的图像梯度方法进行眼睛中心跟踪 链接- <>他在C++中实现了这个想法,我想把它转换成Python代码。在我使用这个函数之前,一切都很顺利C++ 如何在python中使用cv::Mat?,c++,python-3.x,numpy,opencv,C++,Python 3.x,Numpy,Opencv,我在做一个瞳孔检测项目。我找到了这个链接,使用这个链接中提供的图像梯度方法进行眼睛中心跟踪 链接- 他在C++中实现了这个想法,我想把它转换成Python代码。在我使用这个函数之前,一切都很顺利 cv::Mat *leftCornerKernel; cv::Mat *rightCornerKernel; // not constant because stupid opencv type signatures float kEyeCornerKernel[4][6] = { {-1,-1,
cv::Mat *leftCornerKernel;
cv::Mat *rightCornerKernel;
// not constant because stupid opencv type signatures
float kEyeCornerKernel[4][6] = {
{-1,-1,-1, 1, 1, 1},
{-1,-1,-1,-1, 1, 1},
{-1,-1,-1,-1, 0, 3},
{ 1, 1, 1, 1, 1, 1},
};
void createCornerKernels() {
rightCornerKernel = new cv::Mat(4,6,CV_32F,kEyeCornerKernel);
leftCornerKernel = new cv::Mat(4,6,CV_32F);
// flip horizontally
cv::flip(*rightCornerKernel, *leftCornerKernel, 1);
}
如何在python中转换此cv::mat(4,6,cv_32F,keyecornel)
任何帮助都将不胜感激。为了找到解决方案,我在这方面做了更多的工作。正如@stormzhou所说,我终于能够解决这个问题了
rightCornerKernel = np.array([[-1, -1, -1, 1, 1, 1],
[-1, -1, -1, -1, 1, 1],
[-1, -1, -1, -1, 0, 3],
[1, 1, 1, 1, 1, 1]])
回答我自己的问题,python中的void createCornerkernels()函数
def createCornerkernels():
leftCornerkernel = None
rightCornerKernel = np.array([[-1, -1, -1, 1, 1, 1],
[-1, -1, -1, -1, 1, 1],
[-1, -1, -1, -1, 0, 3],
[1, 1, 1, 1, 1, 1]])
leftCornerKernel = cv2.flip(rightCornerkernel, 1)
return leftCornerKernel, rightCornerKernel
你不想使用OpenCV吗?Python版本的OpenCV使用numpy数组而不是cv::Mat。@安že,我知道在Python中我们使用numpy数组而不是cv::Mat,但我不知道如何在numpy.array()中传递keyecornel()?谢谢你,但是这一行rightCornerKernel=new cv::Mat(4,6,cv_32F,keyecornel);?