我在做一个瞳孔检测项目。我找到了这个使用此链接中提供的图像梯度方法跟踪眼球中心的链接。
链接- http://thume.ca/projects/2012/11/04/simple-accurate-eye-center-tracking-in-opencv/
他用c++实现了这个想法,我想把它转换成python代码。在我使用这个空的createCornerKernel()函数之前,一切都很顺利。
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,kEyeCornerKernel)?
任何帮助都将不胜感激。
发布于 2019-05-22 06:31:11
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]])
发布于 2019-05-22 14:56:21
我已经在这个问题上做了一些工作,只是为了找到解决方案。正如@storm洲建议的那样,我终于能够解决这个问题了。
对于我自己的问题,python中的空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
https://stackoverflow.com/questions/56237753
复制相似问题