我在彩色图像上计算了HOGDescriptor
,发现Python和C ++中的结果不同,opencv版本,HOG参数和图像在两者上都是相同的。
在C ++和Python上使用默认BGR图像
在C ++和Python上使用默认BGR2RBG图像计算的HOG描述符之间再次存在惊人的差异。但是,C ++似乎遵循推荐的(通过Dalal,Triggs)计算HOG作为所有三个通道的最大值的方式,正如BGR和RGB图像具有相同的HOG描述符,但Python不
然而,图像的灰度版本显示类似的(但不相同的)描述符值。
HOG参数:
cv::HOGDescriptor hogDescriptor;
hogDescriptor.blockSize = cv::Size(8, 8);
hogDescriptor.cellSize = cv::Size(4, 4);
hogDescriptor.blockStride = cv::Size(4, 4);
hogDescriptor.nbins = 9;
hogDescriptor.signedGradient = true;
hogDescriptor.winSize = cv::Size(72, 72);
我的问题是,为什么C ++和Python实现之间存在如此大的差异,即使Python只是C ++版本的包装器?