Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在python中使用cv::Mat?_C++_Python 3.x_Numpy_Opencv - Fatal编程技术网

C++ 如何在python中使用cv::Mat?

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,

我在做一个瞳孔检测项目。我找到了这个链接,使用这个链接中提供的图像梯度方法进行眼睛中心跟踪

链接-

<>他在C++中实现了这个想法,我想把它转换成Python代码。在我使用这个函数之前,一切都很顺利

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);?